ステータスバーの通知を作成しました。これにより、ステータスバーにメッセージが表示され、クリックするとまったく新しいレイアウトにリダイレクトされます。ステータスバーコード -
NotificationManager mgr = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
Intent notificationIntent = new Intent(this, TaskCompleteActivity.class);
notificationIntent.putExtra(TasksDBAdapter.KEY_ROWID, rowId);
notificationIntent.putExtra(TasksDBAdapter.KEY_TITLE, taskTitle);
notificationIntent.putExtra(TasksDBAdapter.KEY_BODY, taskDesc);
//notificationIntent.putExtra("NotificationId", );
Log.i(TAG,"rowId in doReminderWork" + rowId);
PendingIntent pi = PendingIntent.getActivity(this, 0, notificationIntent,PendingIntent.FLAG_ONE_SHOT);
Notification note=new Notification(android.R.drawable.stat_sys_warning,taskDesc,System.currentTimeMillis());
note.setLatestEventInfo(this, taskTitle,taskDesc, pi);
note.defaults |= Notification.FLAG_AUTO_CANCEL;
note.defaults |= Notification.DEFAULT_SOUND;
note.defaults |= Notification.DEFAULT_VIBRATE;
// you need to clear the notification on click of status bar notification //
note.flags |= Notification.FLAG_NO_CLEAR;
// An issue could occur if user ever enters over 2,147,483,647 tasks. (Max int
// value).
// I highly doubt this will ever happen. But is good to note.
int id = (int)((long)rowId);
mgr.notify(id, note);
このレイアウトには、クリックすると完了というボタンがあり、データベースの行を削除してfinish()を呼び出しています。コード -
public void completeTask(){
taskDBAdapter.deleteReminder(rowId);
this.finish();
}
この後、通常のメニューからアプリケーションを開くと、ランディング アクティビティではなく、完全なボタンを持つこの同じレイアウトが引き続き表示されます。この活動が終わらないのはなぜですか?
前もって感謝します、 カウシク