アプリケーションで別の種類の通知を行う必要があります。アプリケーションがタスク マネージャーから強制終了された場合でも、通知が表示されるはずです。通知は次々にスタックされる必要があります。私が使用している既存の通知コードを以下に示します。
これは、通知を作成するためのクラスです。
public class TimeAlarm extends BroadcastReceiver {
NotificationManager nm;
@Override
public void onReceive(Context context, Intent intent) {
nm = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
CharSequence from = "Scheduled Training";
CharSequence message = "Please attend the scheduled training";
PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
new Intent(), 0);
Notification notif = new Notification(R.drawable.ic_launcher,
"Scheduled Training", System.currentTimeMillis());
notif.setLatestEventInfo(context, from, message, contentIntent);
nm.notify(1, notif);
}
}
これは、通知を作成するためにアクティビティで使用しているコードです。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
duration=(EditText)findViewById(R.id.duration_editText);
dateAndTimeLabel=(TextView)findViewById(R.id.timeTxt);
updateLabel();
updateNotification();
am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
// On Click Confirm
confirm=(ImageView)findViewById(R.id.confirm_imageView);
confirm.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
getDateTime();
count++;
setOneTimeAlarm();
}
});
}
public void setOneTimeAlarm() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, hour);
calendar.set(Calendar.MINUTE, minute);
calendar.set(Calendar.SECOND, 0);
Intent intent = new Intent(this, TimeAlarm.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0,
intent,count);
am.set(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(), pendingIntent);
}
void updateNotification()
{
hour= dateAndTime.get(Calendar.HOUR_OF_DAY);
minute=dateAndTime.get(Calendar.MINUTE);
}
これは私の目標を達成するのに役立ちません。私は何をすべきか?アイス エイジの村のゲームで見られるような通知を作成したいと考えています。