我有一個後臺服務正在運行,我正在使用通知和PendingIntent來允許用戶「重新打開」現有的家庭活動。不幸的是,它正在創建一個新的家庭活動,堆積在我想要的一個頂部,意味着用戶必須點擊後退按鈕才能恢復到原始狀態。我需要在以下服務代碼中更改哪些內容才能確保它重新打開現有活動?如何從服務中將現有活動恢復到前臺?
Intent notificationIntent = new Intent(ApplicationContext, typeof(MainActivity));
notificationIntent.SetFlags (ActivityFlags.NewTask);
PendingIntent pendingIntent = PendingIntent.GetActivity(this, 0, notificationIntent, 0);
Notification notification = new Notification (Resource.Drawable.Icon, "Playing: " + mStreamName);
notification.Flags |= NotificationFlags.OngoingEvent;
notification.SetLatestEventInfo (this, "MyApp", "Announcement!", pendingIntent);
StartForeground((int)NotificationFlags.ForegroundService, notification);
我的清單:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="..." android:versionCode="2" android:versionName="2.0">
<uses-sdk />
<application android:label="..." android:icon="@drawable/icon">
<service android:enabled="true" android:name=".AudioService"/>
</application>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
</manifest>
如果您啓動的應用程序第一次從安裝程序,瀏覽器或IDE(IntelliJ,Eclipse,Android Studio等)ou實際上可能會看到這個長期存在的Android bug:http://stackoverflow.com/a/16447508/769265 –
Post你的艙單請 –
David,我在Android設備上獲得了同樣的效果。 – screenglow