簡體   English   中英

應用程序銷毀后在應用程序中打開相同的活動

[英]Opening the same activity in application after the app is destroyed

我想打開用戶在退出或銷毀應用程序之前正在使用的相同活動。 我怎樣才能做到這一點? 請幫忙....

當通過主屏幕上的圖標啟動時,Android始終會使用AndroidManifest.xml中的android.intent.action.MAIN過濾器啟動該活動,除非該應用程序已經在運行(在這種情況下,它將顯然將活動還原到堆棧)。

要實現您所描述的內容,您可以簡單地將最后一個可見活動存儲在SharedPreferences中,並具有一個Dispatcher活動,該活動根據首選項啟動最后一個活動。

因此,在每個活動中您都想自動重新啟動:

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

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

和一個Dispatcher活動類似以下內容:

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));
    }
}

備注:

  • 您可以為onPause覆蓋創建基類
  • Dispatcher活動顯然需要是android.intent.action.MAIN操作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM