`
serryzhao
  • 浏览: 115648 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

存在栈中的Activity与static数据

 
阅读更多
activity1跳转到activity2中
activity1中使用某静态类中某static属性存储相关的数据,在activity2中对static的值进行改变,点击返回按钮,回到acitivity1中,发现activity1中的数据没有改变。

activity1跳到activity2中后,处于挂起状态,被压入到栈中,当返回后activity2从栈顶弹出,activity1获取到焦点,但是activity1中引用的还是static的值,怎么没有变化呢? 原因很简单,你没有将这个acitivity中的东西重新画一下,或者说是重新刷一下,怎么才能重新刷呢?也有很多种形式
1、可以以startActivityForResult的形式启动activity2,实现activity1 activity2的交互
2、可以利用activity生命周期中的onResume方法在次刷新一下了。

以上为个人观点,如有更好方法可以讨论。

分享到:
评论

相关推荐

    安全退出activity方法(多种)

    3. 使用FLAG_ACTIVITY_NEW_TASK:如果你的Activity是在新的任务栈中启动的,可以使用`FLAG_ACTIVITY_NEW_TASK`和`FLAG_ACTIVITY_CLEAR_TASK`来清理整个任务栈,从而达到退出Activity的目的。这通常用于启动主...

    Android 完全退出程序,关闭所有Activity

    在Android应用开发中,完全退出程序意味着结束所有与应用程序相关的活动(Activity)并释放系统资源。用户通常期望点击“退出”按钮后,整个应用程序能够完全关闭,而不是仅仅停留在后台运行。下面我们将详细讨论...

    Android中知道界面是哪个activity,一次结束所有Activity退出程序

    当用户在应用中导航时,多个Activity可以按照栈(后进先出,LIFO)的方式堆叠起来,形成一个叫做任务(Task)的结构。在某些场景下,如应用退出或清理内存,开发者可能需要结束所有已打开的Activity,让应用回到启动...

    Android Activity之间的跳转以及传递参数源代码下载

    在实际项目中,除了基本的Activity跳转和参数传递,还需要考虑任务栈(Task Stack)的概念,例如使用FLAG_ACTIVITY_NEW_TASK、FLAG_ACTIVITY_CLEAR_TOP等标志来控制Activity的启动模式,以及如何处理返回栈的行为。...

    Android内存泄漏总结1

    静态存储区主要存储静态数据、全局static数据和常量,这些数据在整个程序运行期间都存在。栈区用于存储方法执行时的局部变量,当方法执行完毕,栈内存会自动释放。而堆区则用于动态内存分配,即new操作创建的对象...

    返回键退出程序的两种方式.zip

    然后,在每个Activity的onCreate()方法中添加`MyApplication.addActivity(this)`,这样就可以把当前Activity添加到栈中。当需要退出程序时,调用`MyApplication.finishAllActivities()`即可。 另外,`OneMoreExit`...

    android学习笔记

    1. **数据绑定**:XML数据绑定是Android中的一种技术,允许将布局文件中的视图与Activity或Fragment中的代码进行绑定,提高开发效率。例如,在XML布局文件中使用`<data>`标签定义变量,并在Java代码中通过`...

    Android 退出多Activity的application的方式方法

    将主Activity设置为`SingleTask`模式,这样当用户再次打开应用时,会替换已存在的任务栈,达到退出效果。但此方法仅适用于某些特定场景,不适用于需要保留多个Activity状态的情况。 5. **第四种方式的更优雅实现**...

    Android 高级开发面试题以及答案 整理

    在运行时数据区中,JVM 将 Java 程序 Counterpart 分为方法区、堆、栈、PC 寄存器和本地方法栈等五个部分。其中,方法区用于存储类信息、变量信息和方法信息,堆用于存储对象实例,栈用于存储方法调用信息,PC ...

    如何完全退出程序

    然而,如果还有其他Activity在栈中,应用并未真正退出。`System.exit(0)`则强制终止当前进程,但这并不推荐,因为它可能会导致数据丢失,而且违反了Android的正常应用退出流程。`android.os.Process.killProcess...

    Android Activity 完全结束并退出程序的实例

    这种方法虽然需要在每个Activity中都添加判断,但确实能够确保无论Activity栈如何复杂,都能将所有Activity关闭。值得注意的是,这种方法可能会导致用户体验下降,因为用户可能期望按返回键就能直接退出应用,而不是...

    安卓Android源码——完全退出程序的方法.zip

    可以使用`finishAffinity()`方法,它将关闭当前Activity以及与其在同一任务栈(Task)中的所有同级Activity。 2. **停止服务(Services)**:如果应用运行着任何后台服务,需要调用`stopService()`或`stopSelf()`...

    Android内存泄漏详解专栏

    1. **静态分配**:主要用来存放静态数据、全局`static`数据以及常量。这类内存区域在程序编译阶段就已分配,并在整个程序运行周期中保持不变。 2. **栈式分配**:用于存储方法体内的局部变量。当方法执行开始时,...

    Android 判断某个Activity 是否在前台运行的实例

    在Android开发中,有时我们需要知道某个特定的Activity是否正在前台运行,这可能涉及到用户交互的判断、消息推送的控制或者优化应用性能等多个方面。本文将详细介绍如何在Android中实现这一功能,通过一个具体的实例...

    android各种文件的intent

    - 创建Intent并设置其动作为`VIEW`,同时添加默认分类(category)和标志(flag)`FLAG_ACTIVITY_NEW_TASK`,这样当Intent被触发时,将会在一个新的任务栈中启动一个新的Activity。 - 创建URI对象,这里使用的是`Uri...

    Android程序员常见的问题.docx

    区别是根据 Activity 在 manifest 里面的配置,这个 Activity 可能会放在不同的 task 栈里面 intent 设置的 flag,flag_new_task。 Android 程序与 Java 程序的区别 Android 程序员需要了解 Android 程序与 Java...

    fragment整体框架的搭建 jksd2.zip

    在Android应用开发中,Fragment是UI组件的重要组成部分,它允许我们构建可重用的模块化界面,可以在Activity中动态添加、删除或替换。本教程将详细介绍如何搭建一个完整的Fragment框架,包括Fragment的创建、页面...

    Frament的使用和传值

    创建一个接口,让Activity实现这个接口,然后在Fragment中回调接口方法来传递数据。例如: ```java interface OnDataPassListener { void onDataPass(String data); } // 在Fragment中 private ...

    世界500强IT公司Android校园招聘笔试试卷1

    4. 结束Activity通常调用finish()方法,这会将当前Activity从栈中移除,返回上一个Activity或者关闭应用。 5. 启动Service的方法有两种:startService()用于异步执行服务,不关心服务何时结束;bindService()用于与...

Global site tag (gtag.js) - Google Analytics