如何保持活动的先前状态

roy*_*hew 5 android android-intent

我有两个活动(activity1和activiy2),每个活动都有一个按钮.在activity1中,我有一个很少选项的微调器.假设我从这个微调器中选择选项2,我单击activity1中的按钮,然后activity2启动.当我点击后退按钮时,activity1恢复,同样的选项2可见(我需要).现在的问题是,如果我的activity2已启动,并且我单击其中的按钮,则启动activity1.但是,它不是恢复以前的activity1状态,而是以刚刚创建的方式启动,并且之前的选择已更改.我怎么能得到像后退按钮一样的设施(不是回到以前的活动的设施,我的意思是自动恢复任何活动的先前状态),即使我再次开始活动.简单地说,如果再次访问活动,我需要知道如何维护活动的先前状态.

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

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

startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

请帮助我.我是android的初学者,所以如果有人给出答案,请解释一下.谢谢你的意见

roy*_*hew 11

我想我找到了答案.让我用简单的话说出我的所作所为,

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

对于上面的场景,我所做的是在清单中我做了一些像这样的更改:

<activity android:name=".activity2"
          android:alwaysRetainTaskState="true"
          android:launchMode="singleInstance">
</activity>
Run Code Online (Sandbox Code Playgroud)

在按钮点击事件的activity1中我做了这样的事情:

Intent intent=new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
intent.setClassName(this,"com.mainscreen.activity2");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

在按钮点击事件的activity2中我做了这样的事情:

Intent intent=new Intent();
intent.setClassName(this,"com.mainscreen.activity1");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

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

我相信这是答案,这对我来说很好.