android 如何點選通知欄中的前臺服務,返回當前正在進行的活動
阿新 • • 發佈:2019-02-11
剛開始編寫的時候在處理PendingIntent時,就是簡單的讓所開啟的intent new出想回到的活動,但是後來發現這樣實際上只是新建了一個相同的活動覆蓋住了正在進行的活動上,就像寫的音樂播放器,在後臺的時候若我點選通知欄裡的前臺服務,會打開了一個新的音樂播放器活動覆蓋在正在播放音樂的活動的音樂上面,並不是把後臺正在進行的音樂活動調出來。最後解決方法如下:
<pre name="code" class="java">NotificationCompat.Builder builder = new Builder(this); Intent intent = new Intent(Intent.ACTION_MAIN); intent.setAction(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); intent.setComponent(new ComponentName(this.getPackageName(), this.getPackageName() + "." + this.getLocalClassName())); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); // 點選跳轉到主介面 PendingIntent intent_go = PendingIntent.getActivity(this, 5, intent, PendingIntent.FLAG_UPDATE_CURRENT); remoteViews.setOnClickPendingIntent(R.id.notice, intent_go);
核心是先隱式啟動Activity,先setAction,再設定啟動模式