我想在用户关闭应用程序时恢复上一个活动。但我不知道该怎么做。我需要你的帮助......任何人?
我有2个活动,我希望它是这样的,如果用户一直在查看第二个活动,然后关闭应用程序,他仍然会在他再次打开应用程序时查看最后一个活动。
这是我的活动1:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String lastActivity =
PreferenceManager.getDefaultSharedPreferences(this).getString("last_activity", "");
if (last_activity == WelcomeActivity.getSimpleName())
{
startActivityForResult(new Intent(this, WelcomeActivity.class), mDay,
savedInstanceState);
} else {
startActivityForResult(new Intent(this, MainActivity.class), mDay,
savedInstanceState);
}
}
public void onActivityResult() {
finish();
}
这是我的活动2:
public class WelcomeActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
}
@Override
public void onResume() {
Editor e = PreferenceManager.getDefaultSharedPreferences(this).edit();
e.putString("last_activity", getClass().getSimpleName());
e.commit();
super.onResume();
}
}
我只是希望它在用户打开应用程序时恢复上次查看的活动,但我不能。请帮帮我,我是android的新手。
答案 0 :(得分:2)
在每个onStop()
中覆盖Activity
方法:
@Override
public void onStop() {
Editor e = PreferenceManager.getDefaultSharedPreferences(this).edit();
e.putString("last_activity", getClass().getSimpleName());
e.commit();
}
然后覆盖每个onCreate()
中的onRestart()
和Activity
方法,然后放置:
String lastActivity =
PreferenceManager.getDefaultSharedPreferences(this).getString("last_activity", "");
if (last_activity == WelcomeActivity.getSimpleName()) {
startActivityForResult(new Intent(this, WelcomeActivity.class), mDay,
savedInstanceState);
} else if(last_activity == "") {
// Do nothing,
} else {
startActivityForResult(new Intent(this, MainActivity.class), mDay,
savedInstanceState);
}
这样,只要用户离开应用程序,或者Android决定关闭它,您就可以Activity
保存SharedPreferences
。
答案 1 :(得分:0)
简单地在共享pref和onCreate方法中保存活动状态为真或假检查哪个acctivies状态为true是否打开该活动
1.Declare变量
SharedPreferences pref;
SharedPreferences.Editor editor;
2.in onCrete方法
pref = getSharedPreferences("testapp", MODE_PRIVATE);
editor = pref.edit();
3。当用户参加第1活动时
editor.putInt("MyActivity",1);
editor.commit();
4.当用户进行第2次活动时
editor.putInt("MyActivity",2);
editor.commit();
然后每次你都可以查看:
int getStatus=pref.getInt("MyActivity",-1);
if(getStatus == 1)重定向(使用意图)到第一个活动,否则显示第二个活动和 完成当前活动