2012-09-06 59 views
7

如何從我以前的位置恢復我的應用程序。Android:從以前的位置恢復應用程序

請注意,它仍處於活動狀態,只是暫停。所以如果我點擊Android的當前應用程序按鈕或應用程序圖標,它恢復正常。

但誰辦這從我的窗口小部件..

我有以下幾點:

// Create an Intent to launch Activity 
Intent intent = new Intent(context, LoginForm.class); 
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); 

這很明顯啓動,而不是僅僅恢復應用程序的LoginForm的。

有誰知道如何做到這一點?

編輯:

只是爲了澄清,我不想要任何特別的東西。我基本上想模仿按下android圖標啓動器。

+0

參見[這](http://stackoverflow.com/questions/3268962/when-is-it-necessary-to-use -single-launch -mode-in-an-android-widget-or-applic)SO問題(可能重複) – Luke

+0

請不要試圖混淆啓動模式來完成這項工作。這是沒有必要的,並在以後創造更多麻煩。 –

回答

12

你已經基本上回答了自己的問題;-)

只是模擬,當你啓動應用程序的Android做什麼:

Intent intent = new Intent(context, LoginForm.class); 
intent.setAction(Intent.ACTION_MAIN); 
intent.addCategory(Intent.CATEGORY_LAUNCHER); 
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); 

,或者你可以試試這個(假設LoginForm是根系活力您的應用程序,並且有在任務堆棧仍然活躍本次活動的一個實例):

Intent intent = new Intent(context, LoginForm.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); 

設置FLAG_ACTIVITY_NEW_TASK應該只是爲應用程序從後臺到前臺帶來一個正在發生的任務,而不實際創建活動的實例。先試試這個。如果它不適合你,那麼做另一個。

+1

頭痛消失了。謝啦! :)它現在繼續在最後一次留下的活動:) – Doomsknight

+0

ACTION_MAIN解決方案不適用於每個設備。剛測試過沒有三星設備支持它! –

+0

ACTION_MAIN解決方案適用於三星J3。 – fadedbee

0

使用這是一樣的android做你的發射活動

Intent notificationIntent = new Intent(context, SplashActivity.class); 
     notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP); 
     notificationIntent.setAction(Intent.ACTION_MAIN); 
     notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER); 
     PendingIntent clickActionIntent = PendingIntent.getService(context, 0, notificationIntent, 0); 
相關問題