2013-06-26 148 views
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新手。

+0

這是一個PHP問題? – GordonM

+0

如何通過按下「後退按鈕」或「主頁按鈕」關閉應用程序。如果它的主頁按鈕,你不想做任何事情,因爲它會恢復上次打開的活動。但是如果你通過'Back Button'關閉應用程序,那麼你已經清除堆棧 – GoCrazy

回答

0

只需保存工作之外的活動的國家True或共享PREF如果這acctivies狀態onCreate方法檢查假是真開放該活動

1.Declare變量

SharedPreferences pref; 
SharedPreferences.Editor editor; 

2。在onCrete方法中

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

3.當用戶出現在第一活動

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

4.當用戶來到上2ST活性

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

然後每次ü可以通過檢查:

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

如果(的getStatus == 1)重定向(使用意圖)到第一個活動else顯示第二個活動和 完成當前活動

+0

我應該在哪裏輸入這個int getStatus = pref.getInt(「MyActivity」, - 1);.對不起,我沒有想法。這是第一次活動嗎? – Drx

+0

在onCreate方法每次它將檢查onCreate方法,如果它返回1它將會去第一個活動,如果它返回2它將會去第二個活動..把這兩個活動onCreate方法 – KOTIOS

+0

非常感謝你..... – Drx

2

覆蓋onStop()方法在每個Activity

@Override 
public void onStop() { 
    Editor e = PreferenceManager.getDefaultSharedPreferences(this).edit(); 
    e.putString("last_activity", getClass().getSimpleName()); 
    e.commit(); 
} 

然後覆蓋在每個ActivityonCreate()onRestart()方法有放:

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

+0

我使用這個,但它是「逼近」。 – Drx

+0

您需要從LogCat中發佈日誌,以便我們可以看到出現了什麼錯誤。 –

+0

我應該把onCreate()和onRestart()相同嗎? – Drx

相關問題