2017-04-05 122 views
0

在我的應用程序中,我有5項活動。 AB,CD,E。活動B,C,D,E擴展活動A它擴展了AppCompat。當應用程序從Android Studio啓動時,活動A啓動活動B。從活動B,用戶可以決定要加載哪個活動CDE。我的代碼工作正常,直到用戶退出應用程序並決定再次啓動它。該應用程序顯示活動A,並且不會將用戶帶到活動B。我希望用戶看到活動B。我怎樣才能解決這個問題?Android發佈簡歷活動

+0

可以共享此活動B你**意圖的過程**,也爲**艙單申報同樣的Activity **? –

+0

我很困惑,爲什麼你在這裏提到onResume()..因爲在你的問題中你聲明「用戶退出」應用程序重新啓動它。這意味着活動B被摧毀。這意味着重新啓動時,Activity A的onCreate()將被調用。如果沒有代碼,我不能說出了什麼問題,但是如果你在Activity A的onCreate()中處理了Intent,那麼它應該工作。 –

+0

除非你的意思實際上是「當應用程序進入後臺並被帶回到前臺..」,那麼onResume()將確實被觸發,但應該來自Activity B而不是A. –

回答

0

這聽起來像你應該定義活動B在清單,我假設活動A你的發射器被定義爲通過一個模板/默認的啓動器。

<activity name="{Activity B's name}">  
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

活動B將是應用程序的「根」,此刻活動B是在頂部堆疊中的活動A的加入。

如果活動A也在進行一堆引導,則需要採用另一種方法,但需要更多信息。

0

你試過重寫onResume()方法來顯示活動B嗎?

@Override 
public void onResume(){ 
    super.onResume(); 
    setContentView(R.id.layout_B); 
} 
+1

如果他的問題被正確編寫,那麼Activity B被破壞,活動A =>「用戶退出應用程序」。它不會在後臺進行,onPause()和後來的onResume()會被觸發。 –

0

如果您想保留應用程序狀態您的應用程序關閉後,您可能需要使用SharedPreferences

final String CURR_ACTIVITY_KEY = "curr_activity"; 
int currentActivityKey = 1; 
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); 
prefs.edit().putInt(CURR_ACTIVITY_KEY, currentActivityKey).commit();