Bal*_*yto 5 android android-lifecycle android-activity
我在应用程序中有一些通过6个活动的向导.
所以我打电话给:
主要活动 - 呼叫选项1 - 呼叫选项2 - 呼叫选项3 - 呼叫选项4 - 呼叫选项5
现在,在选项5上,我将整个操作保存到数据库,此时我需要返回主活动并销毁Option1,2,3,4和5.
在选项5保存到数据库之前,我需要能够返回,进行更改,转到选项5并保存.
是这样做的正确方法我以某种方式创建了具有以下方法的方法:
private void cleanStack(){
Option1.finish();
Option2.finish();
Option3.finish();
Option4.finish();
Option5.finish();
}
Run Code Online (Sandbox Code Playgroud)
然后开始(或恢复)主要活动?
TNX
使用以下命令清除堆栈:
Intent intent = new Intent ( this , MainActivity.class );
intent.addFlags ( Intent.FLAG_ACTIVITY_CLEAR_TOP );
startActivity ( intent );
Run Code Online (Sandbox Code Playgroud)
通过这种方式,您可以在堆栈中拥有:主要活动 - >呼叫选项1 - >呼叫选项2 - >呼叫选项3 - >呼叫选项4 - >呼叫选项5
如果使用clear top标志启动MainActivity,则MainActivity顶部的堆栈中的所有活动都将完成.
我要做的是,创建一个意图来回调您的 MainActivity,而不是完成所有活动。
使用该setFlags
方法为该 Intent 提供FLAG_ACTIVITY_CLEAR_TOP
.
这将检查您的堆栈以查看 MainActivity 的实例是否已存在,如果存在,则会将该 Activity 置于最前面并清除其上方的所有 Activity,而不是重新启动 MainActivity 并将其放在堆栈顶部。
如果 MainActivity 需要选项 1-5 中的信息,您可能需要刷新数据,因为 CLEAR_TOP 在大多数情况下会将 MainActivity 的旧实例置于焦点中,而不是完全重新创建它(不会onCreate
被调用,但onStart
会被onResume
调用)。
这是有关 Intent 类的文档。如果您遇到困难,还有其他标志可以帮助您进行导航。祝你好运!
归档时间: |
|
查看次数: |
883 次 |
最近记录: |