2017-05-28 142 views
-5

活動中有很多按鈕。當點擊每個按鈕時,不同的活動將打開。如果我們關閉應用並重新打開它,我們必須獲得最後一次打開的活動。列表視圖點擊一個活動然後保存活動

+2

歡迎SO。你想說什麼? –

+0

活動中有很多按鈕。當點擊每個按鈕時,不同的活動將打開。如果我們關閉應用並重新打開它,我們必須獲得最後一次打開的活動。 –

+0

好吧,然後將上次打開的活動的ID /引用保存到首選項,然後在每次加載應用時檢查首選項。如果首選項包含該活動ID,則顯示它,否則顯示其他活動。 –

回答

2

爲了實現你所說,你可以簡單地將最後一個可見活性存儲在SharedPreferences,並有調度活動,根據喜好開始最後一個活動是什麼。

在每一個活動

要自動重新啓動:

類似於以下
@Override 
protected void onPause() { 
    super.onPause(); 

    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("XYZ", MODE_PRIVATE); 
      activityClass = Class.forName(
       prefs.getString("lastActivity", Activity1.class.getName())); 
     } catch(ClassNotFoundException ex) { 
      activityClass = Activity1.class; 
     } 

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

你也可以試試這個在您的清單(只是檢查這也),

<activity 
android:name=".MainActivity" 
android:alwaysRetainTaskState="true" 
android:exported="true" 
. 
. 
. 

注意:Dispatcher活動顯然需要是android.intent.action.MAIN行動

如果以上不工作嘗試這一個也:

 @Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) { 
     // Activity was brought to front and not created, 
     // Thus finishing this will get us to the last viewed activity 
     finish(); 
     return; 
    } 

    // Regular activity creation code... 
} 
+0

先生的電子郵件ID onnu trumo? –

+0

嘿Shabab,我太工作了。我只是想給你一些樣品來幫助你。 –

+0

先試試自己,如果不行的話。通知我。 –

相關問題