2014-06-14 71 views
0

我目前正在嘗試處理我的應用程序的退出和重新啓動。android restart當離開並回到我的應用程序時的活動

所以,當我按主頁按鈕我的應用程序關閉和Android主屏幕是可見的。 應用程序進程仍然保留在進程列表中 - 這應該是它的方式。

當我回到我的應用程序時,我想再次啓動它,就像我第一次啓動它。 我只有1個活動,這裏是我的時刻

@Override 
protected void onPause() { 
    // TODO Auto-generated method stub 
    super.onPause(); 
    this.finish(); 
} 

這樣做活動正常關閉 - 這給我留下了一個空白的活動時,我恢復的應用程序。

不幸的是我不知道如何改變活動再次創建的行爲。

編輯

@Override 
protected void onResume() { 
    // TODO Auto-generated method stub 
    super.onResume(); 

    callResume++; 
    if(callResume > 1) 
    { 
     Intent newInt = new Intent("android.intent.action.MainActivity"); 
     startActivity(newInt); 
     this.finish(); 

    } 
} 
+0

也許這將有助於:http://stackoverflow.com/questions/1397361/how-do-i-restart-an-android-activity。 和這個http://developer.android.com/reference/android/app/Activity.html#recreate()..希望這有助於 –

+0

我已經嘗試過這些線程中的建議解決方案。他們的下界起作用。屏幕仍然只有黑色。 – user3740359

+0

另外我試圖在@Override onRestart()中調用它,仍然顯示新的Activity不顯示(黑屏)。有任何想法嗎? – user3740359

回答

1

使用startActivity調用之前完成開始一個新的活動()。開始你想要的任何活動。我想,設置標誌FLAG_ACTIVITY_NEW_TASK應該使堆棧正確。

編輯:

我做了一個mistake-此需要的onResume做,且僅當它是不是第一次的onResume被調用。否則,每次嘗試離開活動時都會自行啓動,這絕對不是您想要的。

+0

@Override \t保護無效的onPause(){ \t \t // TODO自動生成方法存根 \t \t super.onPause(); \t \t意圖newInt = new Intent(「android.intent.action.MainActivity」); \t \t startActivity(newInt); \t \t this.finish(); \t}這讓我的應用程序崩潰,如果我退出它 – user3740359

+0

和回來我注意到一個主要問題 - 你想要在onResume,而不是在onPause這樣做。 startActivity這種方式將啓動你想要的應用程序(我已經使用該代碼強制人們登錄活動),但如果你在onPause中執行它,它將無限循環用戶到你想要重新啓動的活動。它需要在onResume中,並且只有在它不是第一次啓動時。 –

+0

感謝您的回覆。我以你說的方式改變了代碼。現在,該應用程序不會崩潰,但返回到應用程序後,屏幕保持黑屏。有任何想法嗎? – user3740359

相關問題