是否可以完全删除以前的活动?
说明:
我有一个SplashScreen
活动,我正在其中装载数据,等等,然后当它完成时,我导航到MainActivity
,就像这样:
startActivity(Intent(applicationContext, MainActivity::class.java))
finish()
我的MainActivity
排在前台,这没问题,但是在listening to Lifecycle Event
和ProcessLifeCycleOwner library
的情况下,在这种情况下:
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
fun appWillEnterBackground() {
Log.e("INACTIVE", "BECOME INACTIVE")
}
当我在MainActivity
上时,我的两项活动都正在使用此方法。我的SplashScreen
活动不能输入此方法,因为我finish()
。
我尝试在finish()
之后返回,我在"noHistory=true"
中尝试了Manifest.xml
,但都没有起作用。
有什么建议吗?
答案 0 :(得分:0)
您可以尝试array
方法。
finishAffinity():完成此活动以及位于其下方的所有活动。 具有相似关系的当前任务。
答案 1 :(得分:0)
首先调用完成方法,然后开始新的活动。
finish()
startActivity(Intent(applicationContext, MainActivity::class.java));
答案 2 :(得分:0)
您可以对MainActivity使用singletop
启动类型。
<activity android:name=".SingleTaskActivity"
android:launchMode="singleTask">
答案 3 :(得分:0)
在要杀死的活动中创建广播接收器。使用“ ACTION_KILL_THIS_ACTIVITY”之类的意图动作来注册它。在此广播接收器的onReceive方法中,添加finish();线。当您的新活动开始时,您准备杀死另一个活动,因此从新活动的onCreate()方法中,调用
sendBroadcast(new Intent("ACTION_KILL_THIS_ACTIVITY"));
答案 4 :(得分:0)
与其传递applicationContext
而不是传递SplashScreenActivity.this
作为参数,所以您的代码将如下所示:
startActivity(Intent(SplashScreenActivity.this, MainActivity.class));
finish();