我的應用的啓動器活動被稱爲LaunchActivity。在這個活動中,我檢查用戶是否登錄。如果是,則進行網絡呼叫以驗證用戶,如果一切正常MainActivity已啓動。如果用戶第一次運行應用程序或用戶驗證失敗,則運行LoginActivity。Android - 重新打開通知的主要活動
裏面LaunchActivity有運行適當的活動功能:
private void start(Class<? extends Activity> startActivity) {
Intent intent = new Intent(this, startActivity);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
finish();
startActivity(intent);
}
應用程序正在接收通知。通知後點擊我想打開應用程序或將它放在最前面,如果它在後臺。
代碼負責通知的意圖:
Intent intent = new Intent(context, LaunchActivity.class);
intent.putExtra("SHOW_NOTIFICATION_LIST", "");
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
PendingIntent notificationIntent = PendingIntent.getActivity(
context,
0,
intent,
0);
builder.setContentIntent(notificationIntent);
Notification notification = builder.build();
的問題是,我點擊後當前的實現,LaunchActivity被重新打開,即使MainActivity是背景。我無法弄清楚如何使待處理的意圖重新開放,如果它在後臺或開始LaunchActivity當沒有任何活動在後臺運行(應用程序未運行)時,重新啓動MainActivity(不包含LaunchActivity和valdation)。我會非常感激任何形式的幫助。
編輯:
<activity android:name=".activities.LaunchActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".activities.MainActivity"
android:launchMode="singleTop"
android:screenOrientation="userPortrait" />
<activity
android:name=".activities.LoginActivity"
android:excludeFromRecents="true"
android:launchMode="singleTop"
android:noHistory="true"
android:screenOrientation="userPortrait"
android:windowSoftInputMode="adjustResize" >
</activity>
請張貼您的Manifest文件。 –
添加到問題 – Dominik