過去数日間、アプリのNotificationManagerに問題があり、解決に近づいていないようです。
私は今のところ何もしない非常にシンプルなサービスを持っています。通知を表示することになっています:
public class UpdateService extends Service {
private static final String TAG = "UpdateService";
private static int NOTIFICATION_ID = 1;
private UpdateServiceBinder binder = new UpdateServiceBinder();
@Override
public void onCreate() {
Log.i(TAG, "Service created");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i(TAG, "Service started");
sendNotification(100);
return Service.START_NOT_STICKY;
}
private void sendNotification(int updatedItems) {
NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext())
.setSmallIcon(R.drawable.icon)
.setContentTitle("Sync")
.setContentText("Updated " + updatedItems);
Intent resultIntent = new Intent(getBaseContext(), MainActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(getApplicationContext());
stackBuilder.addParentStack(MainActivity.class);
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendindIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(resultPendindIntent);
NotificationManager manager = (NotificationManager) getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(NOTIFICATION_ID, builder.build());
}
@Override
public IBinder onBind(Intent intent) {
return binder;
}
@Override
public boolean onUnbind(Intent intent) {
return true;
}
public class UpdateServiceBinder extends Binder {
public UpdateService getService() {
return UpdateService.this;
}
}
}
残念ながら、サービスが開始され、通知が表示されることになっている場合、何も起こりません。ログメッセージによると、サービスは確実に開始されます。同時に、NotificationManagerからの警告があります。
11-30 23:24:34.620:I / UpdateService(28356):サービスが作成されました
11-30 23:24:34.800:I / UpdateService(28356):サービスが開始されました
11-30 23:24:34.808:W / NotificationManager(28356):通知:IDが破損しています:1が送信され、0が返されました
1以外の番号を使用してみましたが、役に立ちませんでした。私はそれから何を作るのかわかりません。私が使用しているコードは、ここにあるサービスとここにある通知に関するAndroidのドキュメントからのものです。通知に取り組んでいるものと同じように設定された別のクリーンなアプリでコードを分離すると、正しく表示されます。誰かが以前にこの問題を抱えていたことがありますか、または何かアイデアがありますか?
助けていただければ幸いです。ありがとう!