Raj*_*wal 0 java android android-lifecycle android-activity
我正在处理一个应用程序,其中我从活动A(主要活动)移动到活动B到活动C.所有这一切都正常,但问题发生在用户通过从任务托盘中删除它杀死应用程序.
要理解我的问题,说用户从A移动到B然后C,但在完成活动C中的任务之前,用户杀死了应用程序.因此,当用户再次通过按下应用程序图标打开应用程序时,我想启动用户在杀死应用程序时的最后一个活动C,而不是Android的默认行为(主要活动A)再次启动应用程序的新实例.
我尝试过的:
1)我尝试使用"onSaveInstanceState"和"onRestoreInstanceState",但我认为它们在方向改变时使用,或者我们通过按后退按钮返回.
2)我试图将所有内容保存在"onPause"中,因为当活动被破坏时,暂停调用99.99%次,并且通过使用静态标志我打开了最后一个活动,它对我有用,但我想要一些好的示例或技术来完成这项工作.
所以任何人都可以帮我实现同样的目标.. ??
我请求其他成员提供代码示例.
提前致谢.
将状态存储在每个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();
}
Run Code Online (Sandbox Code Playgroud)
以及Shell将成为启动器,主要活动的活动:
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));
}
}
Run Code Online (Sandbox Code Playgroud)
[来源修改]
| 归档时间: |
|
| 查看次数: |
113 次 |
| 最近记录: |