gpt4 book ai didi

java - 如果用户手动终止应用程序,则从离开的位置恢复 Activity

转载 作者:行者123 更新时间:2023-12-01 07:49:11 25 4
gpt4 key购买 nike

我正在开发一个应用程序,在该应用程序中我从 Activity A(主 Activity )转移到 Activity B,再转移到 Activity C。所有这些都工作正常,但是当用户通过从任务托盘中删除应用程序来杀死该应用程序时,就会出现问题。

为了理解我的问题,假设用户从 A 移动到 B,然后移动到 C,但在完成 Activity C 中的任务之前,用户杀死了应用程序。因此,当用户通过按应用程序图标再次打开应用程序时,我想启动用户杀死应用程序时所在的最后一个 Activity C,而不是再次启动(主 Activity A)应用程序的新实例的 Android 默认行为。

我尝试过:

1)我尝试使用“onSaveInstanceState”和“onRestoreInstanceState”,但我认为它们是在方向更改或按后退按钮返回时使用的。

2)我尝试将所有内容保存在“onPause”中,因为当 Activity 被破坏时,onpause 会调用 99.99% 次,并且通过使用静态标志,我打开了最后一个 Activity ,它对我有用,但我想要一些很好的例子或技术来完成这项工作。

那么任何人都可以帮助我实现同样的目标..??

我请求其他成员提供代码示例。

提前致谢。

最佳答案

将状态存储在每个Activity@onPause()中。

因此,在您想要的每个Activity中:

@Override
protected void onPause() {
super.onPause();

SharedPreferences prefs = getSharedPreferences("RESTART", MODE_PRIVATE);
Editor editor = prefs.edit();
editor.putString("last_left", getClass().getName());
editor.commit();
}

还有一个 Shell Activity,它将成为启动器、主要 Activity:

public class Shell extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

Class<?> classActivity;

try {
SharedPreferences prefs = getSharedPreferences("RESTART", MODE_PRIVATE);
classActivity = Class.forName(prefs.getString("last_left", getClass.getName()));
}
catch(ClassNotFoundException ex) {
classActivity = your_Activity1.class;
}

startActivity(new Intent(this, classActivity));
}
}

[来源已修改]

关于java - 如果用户手动终止应用程序,则从离开的位置恢复 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41973210/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com