In Android 4.4.2 Klicken auf meine Foreground Service Benachrichtigung tötet meinen Prozess.Der Vordergrunddienst wird bei Benachrichtigung beendet Klicken Sie auf
Auf älteren Geräten (Samsuing Tab 2 mit 4.2.2) kann ich die Aktivität aus den letzten Aufgaben wegwischen und meine Service
läuft immer noch gut im Hintergrund. Dann, wenn ich auf die Notification
klicke, startet meine App Activity
wieder ganz glücklich.
Sobald ich aber auf die Benachrichtigung auf meinem Nexus 7 unter 4.4.2 klicke, wird mein Prozess beendet (was bis zum Klick glücklich im Hintergrund läuft). Die PendingIntent
scheint gar nicht zu feuern, oder zumindest ist es nicht die erste Zeile der BroadcastReceiver
getroffen:
05-21 16:17:38.939: I/ActivityManager(522): Killing 2268:com.test.student/u0a242 (adj 0): remove task
Ich habe durchlaufen this Antwort, und mit dem Befehl dumpsys activity proccesses
Ich habe bestätigt, dass mein Dienst ist läuft im Vordergrund korrekt.
Also, was ist das Klicken auf diese Benachrichtigung, die meinen Prozess tötet?
-Code bei der Bewegung des Service in den Vordergrund beteiligt folgt:
Service:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i("NativeWrappingService", "Starting Service...");
startForeground(NotificationIcon.NOTIFICATION_STUDENT, NotificationManager.getStudentIcon(this).getNotification());
return super.onStartCommand(intent, flags, startId);
}
NotificationIcon: (getStudentIcon(this).getNotification()
)
public Notification getNotification() {
Builder mBuilder = new Builder(mContext);
if(mSmallIcon != -1) mBuilder.setSmallIcon(mSmallIcon);
if(mLargeIcon != null) mBuilder.setLargeIcon(mLargeIcon);
if(mTitle != null) mBuilder.setContentTitle(mTitle);
if(mSubTitle != null) mBuilder.setContentText(mSubTitle);
if(mSubTitleExtra != null) mBuilder.setContentInfo(mSubTitleExtra);
mBuilder.setOngoing(mOngoing);
mBuilder.setAutoCancel(mAutoCancel);
mBuilder.setContentIntent(getPendingIntent(mContext, mAction, mBundle, mActivity));
return mBuilder.build();
}
private PendingIntent getPendingIntent(Context context, String action, Bundle extras, String activity) {
Intent newIntent = new Intent(context, BroadcastToOrderedBroadcast.class);
Bundle bundle;
if(extras != null) bundle = extras;
else bundle = new Bundle();
if(activity != null && !activity.equalsIgnoreCase("")) {
BundleUtils.addActivityToBundle(bundle, activity);
}
BundleUtils.addActionToBundle(bundle, action);
newIntent.putExtras(bundle);
return PendingIntent.getBroadcast(NativeService.getInstance(), mNotificationID, newIntent, PendingIntent.FLAG_UPDATE_CURRENT);
}
Es ist ein bekannter Fehler, der [hier] verfolgt wird (https://code.google.com/p/android/issues/detail?id=53313). Können Sie die in [Kommentar # 7] (https://code.google.com/p/android/issues/detail?id=53313#c7) aufgelistete Lösung ausprobieren? –