2

我想在用户关闭应用程序时恢复最后一个活动。但我不知道该怎么办。我需要你的帮助……有人吗?

我有 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的新手。

4

2 回答 2

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.

于 2013-06-26T08:20:58.410 回答
0

只需在共享首选项和 onCreate 方法中保存活动状态 True 或 False 即可检查哪些活动状态是否为 true 打开该活动

1.声明变量

SharedPreferences pref;
SharedPreferences.Editor editor;

2.在onCrete方法中

pref = getSharedPreferences("testapp", MODE_PRIVATE);
editor = pref.edit();

3.当用户进入第一个活动时

editor.putInt("MyActivity",1);
editor.commit();

4.当用户进入第二个活动时

editor.putInt("MyActivity",2);
editor.commit();

然后每次你可以检查:

int getStatus=pref.getInt("MyActivity",-1);

if(getStatus==1) 重定向(使用意图)到第一个活动,否则显示第二个活动并完成当前活动

于 2013-06-26T08:19:23.620 回答