0
私は最近私のテストに通知を追加しました。その中にはカウントダウンタイマーがあります。時間を選択してボタンをタップすると、通知はタイマーに設定され、動作します。通知がまだ実行されているときにホームボタンを押したときに通知をタップすると、実行中のアプリケーションではなく新しいアプリケーションのページに移動します。私がしようとしている修正は、通知がタップされたときにタイマーを停止し、ユーザーに自分のアプリケーションのリセットページを表示させることです。Notificatoin実行中のアプリへの意向
//Notification Intent
final Intent notifyIntent = new Intent(this , MainActivity.class);
final PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notifyIntent, PendingIntent.FLAG_UPDATE_CURRENT);
final NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View view) {
if (view.equals(silentButton)) {
int getvaluehour = numPickerHour.getValue();
int getvalueminute = numPickerMin.getValue();
getvaluehour = getvaluehour * 3600000;
getvalueminute = getvalueminute * 60000;
long hoursandMinstomils = getvalueminute + getvaluehour;
final CountDownTimer counter = new CountDownTimer(hoursandMinstomils, 1000) {
public void onTick(long millisUntilFinished) {
//here you can have your logic to set text to edittext
long millis = millisUntilFinished;
//Convert milliseconds into hour,minute and seconds
String hms = String.format("Silent ends in: " + "%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis), TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)), TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));
myText.setText(hms);
//Notification
notifyTimer.setSmallIcon(R.mipmap.ic_launcher);
notifyTimer.setTicker("This is a notification");
notifyTimer.setAutoCancel(true);
notifyTimer.setContentTitle(hms);
//Notification Intent
notifyTimer.setContentIntent(pendingIntent);
//issues the notification
nm.notify(uniqueID, notifyTimer.build());
}
public void onFinish() {
myText.setText("TIME'S UP!!"); //On finish change timer text
nm.cancel(uniqueID);
}
}.start();
stopButton.setOnClickListener(
new Button.OnClickListener() {
public void onClick(View v) {
counter.cancel();
myText.setText("Timer has been reset");
nm.cancel(uniqueID);
}
}
);
}
を使用することができ、あなたの目的のために、その動作を設定するための意図にフラグを設定することができます:あなたの活動にlaunchMode =「singleTop」を –
あなたが指定できますもっと具体的にお願いします –
AndroidマニフェストファイルのMainActivityについては、このコードを追加する必要があります。アンドロイド:launchMode = "singleTop" –