android - 如何保持一个activity之前的状态

标签 android android-intent

我有两个 Activity (activity1 和 activiy2),每个 Activity 都有一个按钮。在 activity1 中,我有一个几乎没有选项的微调器。假设我从这个微调器中选择选项 2,然后单击 activity1 中的按钮,然后 activity2 启动。当我单击后退按钮时,activity1 将恢复并且可以看到相同的选项 2(就像我需要的那样)。现在的问题是,如果我的 activity2 已启动并且我单击其中的一个按钮,则 activity1 已启动。但是,它没有恢复 activity1 的先前状态,而是以刚刚创建的方式开始,并且先前的选择已更改。我怎样才能获得像后退按钮一样的功能(不是返回上一个 Activity 的功能,我的意思是自动恢复任何 Activity 的先前状态),即使我再次开始 Activity 。只是我需要知道如何在再次访问 Activity 时保持 Activity 的先前状态。

当单击按钮时,我使用此代码从一个 Activity 转到另一个 Activity :

Intent intent=new Intent();
intent.setClassName(getApplicationContext(),"com.myapp.activityname");

startActivity(intent);

请帮助我。我是 android 的初学者,所以如果有人给出答案,请解释一下。提前致谢

最佳答案

我想我找到了答案。让我用简单的话来说说我做了什么,

假设我有两个 Activity activity1 和 activity2,我正在从 activity1 导航到 activity2(我在 activity2 中完成了一些工作),然后通过单击 activity1 中的按钮再次返回到 Activity 1。现在在这个阶段我想回到 activity2 并且我想看到我的 activity2 处于我上次离开 activity2 时的相同状态。

对于上述情况,我所做的是在 list 中进行如下更改:

<activity android:name=".activity2"
          android:alwaysRetainTaskState="true"
          android:launchMode="singleInstance">
</activity>

在按钮点击事件的 activity1 中,我是这样做的:

Intent intent=new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
intent.setClassName(this,"com.mainscreen.activity2");
startActivity(intent);

在 activity2 的按钮点击事件中,我是这样做的:

Intent intent=new Intent();
intent.setClassName(this,"com.mainscreen.activity1");
startActivity(intent);

现在会发生的是,我们在 activity2 中所做的任何更改都不会丢失,我们可以在与之前离开时相同的状态下查看 activity2。

我相信这就是答案,而且对我来说效果很好。

关于android - 如何保持一个activity之前的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9147981/

相关文章:

android - HTML 链接从 Intent 生成的电子邮件中消失 (Android 4.1+)

android - AOSP AndroidManifest.xml

android - 在我的网络上使用 Mac 运行 Xamarin 应用程序时找不到文件 : Error for Contents. json

android - 自定义复选框可绘制的大小?

android - 在 Android 中将电子邮件地址保存到 SIM 卡内存

Android:如何同时清除所有应用程序的缓存

java - 在应用程序上使用 Intent 共享图像时出现错误共享失败

android - 当 true 时循环

Android 如何在一段时间后替换 View ?

java - 将模型从一个 Activity 传递到另一个 Activity 时出错