私はサービスを作成しました。また、通知を作成しました。サービスが実行されると通知があります。 は今、私は、ユーザーが通知を却下/スワイプすることができるようにしたいが、やろうとしているときに、私は二つの問題に遭遇しました:作成したサービスの通知を却下できません
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
password = intent.getStringExtra("password");
number = intent.getStringExtra("number");
Intent activityIntent = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 0,
activityIntent, PendingIntent.FLAG_UPDATE_CURRENT);
Notification notification = new Notification.Builder(this).
setContentTitle(getText(R.string.app_name)).
setContentText("Subject").
setContentInfo("Doing stuff in the background...").
setSmallIcon(R.drawable.ic).
setAutoCancel(true).
setContentIntent(pendingIntent).build();
startForeground(1, notification);
return super.onStartCommand(intent, flags, startId);
}
をこのコードは完全に働いた、このコードの唯一の問題は、ユーザーができないということです周りの検索から、私は私が
NotificationManager notificationManager =
(NotificationManager) getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(0,notification);
で「startForeground」関数を置き換えることによって、それを修正することができますことを発見し、それが働いて、私は却下スワイプすることができ、しかし、今、私は別の問題を取得し、Iいったんので、通知をスワイプ却下私のアプリケーションを閉じる(中ボタンを長押ししてすべてのアプリケーションを閉じる) 私意図がnullであるかのように
password = intent.getStringExtra("password");
:アプリはしばらく後にラインを指しNullPointerExceptionがthrrows。これは、startForeground関数を使用すると発生しません。
何が問題なのですか?
あなたは正しいですが、私はSTART_NOT_STICKYソリューションを提案した理由であなたのサービスを再開したいとあなたの質問で言及していませんでした。 –
あなたはそうです、申し訳ありません、私はそれを言及していないようでした。 – javaLovah