I have a problem. Some times my service is forcefully closed with this logcat:
03-26 20:44:44.849: E/AndroidRuntime(12080): FATAL EXCEPTION: main
03-26 20:44:44.849: E/AndroidRuntime(12080): android.app.RemoteServiceException: Bad notification posted from package by.flipdev.vkspy: Couldn't expand RemoteViews for: StatusBarNotification(pkg=by.flipdev.vkspy id=1 tag=null score=0 notn=Notification(pri=0 contentView=by.flipdev.vkspy/0x1090071 vibrate=null sound=null defaults=0x0 flags=0x2 kind=[null]))
03-26 20:44:44.849: E/AndroidRuntime(12080): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1374)
03-26 20:44:44.849: E/AndroidRuntime(12080): at android.os.Handler.dispatchMessage(Handler.java:99)
03-26 20:44:44.849: E/AndroidRuntime(12080): at android.os.Looper.loop(Looper.java:137)
03-26 20:44:44.849: E/AndroidRuntime(12080): at android.app.ActivityThread.main(ActivityThread.java:4931)
03-26 20:44:44.849: E/AndroidRuntime(12080): at java.lang.reflect.Method.invokeNative(Native Method)
03-26 20:44:44.849: E/AndroidRuntime(12080): at java.lang.reflect.Method.invoke(Method.java:511)
03-26 20:44:44.849: E/AndroidRuntime(12080): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
03-26 20:44:44.849: E/AndroidRuntime(12080): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558)
03-26 20:44:44.849: E/AndroidRuntime(12080): at dalvik.system.NativeStart.main(Native Method)
This is my code to add add notifications:
protected void addNotification(final Bitmap Avatar,
final int small_Image_ID, final int notify_id, final String text,
final String title, final Boolean ongoing, final Boolean ticker,
final String tickerText, final Boolean autoCancel,
final String notificationCategory, final int notificationValue) {
try {
final Intent notificationIntent = new Intent(
getApplicationContext(), CheckerActivity.class);
notificationIntent
.putExtra(notificationCategory, notificationValue);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_SINGLE_TOP);
final PendingIntent contentIntent = PendingIntent.getActivity(
getApplicationContext(), notify_id, notificationIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
final NotificationManager nm = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
final NotificationCompat.Builder builder = new NotificationCompat.Builder(
context);
if (Ticker) {
builder.setContentIntent(contentIntent)
.setSmallIcon(small_Image_ID)
.setOngoing(ongoing)
.setLargeIcon(Avatar).setTicker(tickerText)
.setWhen(System.currentTimeMillis())
.setAutoCancel(AutoCancel).setContentTitle(title)
.setContentText(text); // Текст уведомления
} else {
builder.setContentIntent(contentIntent)
.setSmallIcon(small_Image_ID)
.setLargeIcon(avatar)
.setOngoing(ongoing)
.setWhen(System.currentTimeMillis())
.setAutoCancel(AutoCancel).setContentTitle(title)
.setContentText(text); // Текст уведомления
}
final Notification n = builder.getNotification();
nm.notify(notify_id, n);
} catch (final Exception e) {
// TODO: add exception handling code
}
}
Why is my service killed?
I noticed this happening on 3.0 emulators, when I set the Large Icon.
So, since the Large Icon is only used by 4.0+ devices, I solved this issue by checking if the Build version is > 13. If so (and only if so), I set the Large icon.
The problem has gone.
This issue is a result of missing or null resources.
Looking at your code, I infer that, possible error seems to be on Ticker (always false) and setLargeIcon(avatar)
( avatar is always null).
Could you post all your service implementations?
P.S. Please try to respect java's naming convention; Ticker,Avatar,AutoCancel and other objects should start with lower case.
Well, in my case, I was getting this exact same error because I referred to a style definition for a TextView in my custom notification layout that had an entry for an onClick target method. Specifically:
<item name="android:onClick">onClick</item>
Once I removed that line, the problem went away. An oversight on my part, but a good reminder not to blindly reuse styles.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With