我无法恢复到最后一个活动

时间:2013-06-26 08:09:13

标签: java android

我想在用户关闭应用程序时恢复上一个活动。但我不知道该怎么做。我需要你的帮助......任何人?

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

2 个答案:

答案 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)重定向(使用意图)到第一个活动,否则显示第二个活动和   完成当前活动