2012-09-03 93 views
2

我正在開發具有某些原生件的電話應用程序。
到目前爲止,我有本機運行的通知,以確保javascript和phonegap不是必需的。然而,我遇到的問題是點擊通知時我想打開應用程序,或者只是將應用程序放在前面。Android僅在通過意向操作關閉時纔打開應用程序

我該怎麼做?我嘗試設置主要活動的意圖,但它每次都會重新啓動我的應用程序。

 Intent notificationIntent = new Intent(context, main.app.class); 
     notificationIntent.putExtra(NOTIF_RESPOND, runThis); 
     notificationIntent.setAction(Intent.ACTION_VIEW); 
     notificationIntent = notificationIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
+0

請添加你的代碼片段。 – hasanghaforian

回答

3

其實在Android中幾乎沒有「重啓應用程序」之類的東西。基本上,應用程序 - 是所有服務/活動/提供者等的一攬子服務。它不是運行就是運行。

如果用戶啓動一個新的活動 - 系統將檢查,如果應用程序正在運行 - 它會在應用程序內部創建此活動。如果不是 - 將創建新的應用程序實例。

所以我認爲你的意思是說,如果你爲你的主要活動設置意圖 - 活動的另一個實例啓動,我說得對嗎?

如果是這樣 - 看看下面的標誌進行活動,你應該嘗試在Manifest中設置(或者在PhoneGap中的任何東西,對不起)。 http://developer.android.com/guide/topics/manifest/activity-element.html#lmode

<activity android:name=".YourActivity" 
    android:launchMode="singleTask" 
    ... 

這個標誌會告訴系統不創建一個新的活動每種類型將是必要的,但要重新使用已經存在的一個。要小心,在這種情況下,您應該正確實施onNewIntent方法來處理這個「重新啓動」,並且我不能100%確定它是在PhoneGap中實現的。

祝你好運

+0

嗨AlexN,謝謝 這解決了它。 雖然我在它,我想問你另一個問題。我添加意圖額外的啓動應用程序的邏輯。我正在使用if語句來查看是否有額外的內容。這相當合適嗎?或者我應該擴展主要活動或從通知中打開它。 –

+0

把額外的意圖,將啓動活動的主要和最好的方式來傳輸數據,所以我認爲你做的是完全正確的。 – AlexN

相關問題