恢复活动

时间:2013-01-31 14:49:41

标签: android

嘿伙计们,我有这个活动流在我的游戏上。起始页>阶段列表(来自阶段1-10)>问题。如果用户按下开始页面上的开始按钮,他将转到阶段列表,从那里启用的唯一按钮是阶段1,然后其余部分处于禁用模式。在阶段1中有5个问题,并且在用户完成正确回答之后,用户将被引导回到阶段2已经解锁的阶段列表以及阶段1(阶段1默认启用)。现在我想要发生的是当用户使用主页按钮或后退按钮退出应用程序时,用户再次打开应用程序,在从开始页面按下开始按钮后,他将被引导到阶段2的阶段列表仍未解锁或用户上次完成的任何阶段。

2 个答案:

答案 0 :(得分:1)

由于我不完全理解你的问题,我有两个主张:

  1. 在onPause或onStop中保存阶段信息,然后在onCreate方法(http://developer.android.com/guide/components/activities.html#Lifecycle)
  2. 中检索它
  3. 将所有内容保存在SharedPreferneces的onStop中,并在需要时进行检索。我想这个选项更好。

答案 1 :(得分:0)

返回上次打开的活动重新启动应用时

请这样做。

来源:How to make an android app return to the last open activity when relaunched?

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

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


public class Dispatcher extends Activity {

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

        Class<?> activityClass;

        try {
            SharedPreferences prefs = getSharedPreferences("X", MODE_PRIVATE);
            activityClass = Class.forName(
                prefs.getString("lastActivity", Activity1.class.getName()));
        } catch(ClassNotFoundException ex) {
            activityClass = Activity1.class;
        }

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