3

我正在開發一個媒體播放器應用程序播放SD卡中的音頻文件。通過使用應用程序,我可以查看音頻文件,我可以播放選定的歌曲。 當播放歌曲時按下後退按鈕時,會創建通知。問題出現在這裏,當我啓動MainActivity(通過使用PendingIntent)時,應用程序啓動MainActivity的新實例,而不是啓動以前的MainActivity實例。通知啓動活動的多個實例

我將MainActivity launchMode設置爲manifest.FYI中的「Singletop」,應用程序只有一個活動。

我試圖添加通知標誌也,但應用程序仍然啓動另一個實例。

出錯了,我無法得到。請幫助我。

回答

2
Intent intent=new Intent(this,Element.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP); 
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, 0); 

這爲我工作:)

0

老問題,但整合kishu27溶液(謝謝!),它的工作原理,但具有在應用程序中重新設置用戶導航到目的地意圖的唯一缺點清除棧(這可能會或可能不是你想要的是),另一種解決方案是創建一個具有唯一的任務,一項專門活動是意向性目標:

public class NotificationLanding extends Activity { 

    @Override 
    public void onCreate(Bundle mainBundle) { 
     super.onCreate(mainBundle); 

     View view = new View(this); 
     view.setBackgroundColor(Color.TRANSPARENT); 
     setContentView(view); 

     finish(); 
    } 
} 

(也不要忘記申報它在清單中的活動!)

<activity android:name=".NotificationLanding"/> 

並用它來「聚焦」您的應用程序,而不會影響用戶的導航。也許還有其他方法可以獲得相同的效果,歡迎評論。

我建議也將kishu27意向標誌整合到您的意圖(我做過)中,儘管這不是絕對必要的。

希望能幫到