2

アプリが新しい情報を取得すると、通知が送信されます。

しかし、通知をクリックすると、アクティビティが再び開きます。

私は1つのアクティビティしか実行していないので、同じアプリから他のすべてのアクティビティを閉じる方法はありますか.

問題は、アプリが一番上にない間も継続する必要があるタイマー イベントがあることですが、新しいアクティビティを作成するたびに新しいタイマーが作成されるため、同じ通知が 2 回送信され、毎回 2 回アラートが発生します。新しい情報を入手..

ここで通知を作成します。そこで検索する必要があると思います。たとえば、「クリアトップ」または「シングルトップ」など、グーグルで見ましたが機能しませんでした..

        Intent resultIntent = new Intent(this, typeof(QuestionsSession));
        resultIntent.PutExtra ("targeturl", targeturl);
        //resultIntent.SetFlags(ActivityFlags.NewTask | ActivityFlags.SingleTop);
        resultIntent.SetFlags (ActivityFlags.ClearTop);

        TaskStackBuilder stackBuilder = TaskStackBuilder.Create(this);
        stackBuilder.AddParentStack(Java.Lang.Class.FromType(typeof(QuestionsSession)));
        stackBuilder.AddNextIntent(resultIntent);

        PendingIntent resultPendingIntent = stackBuilder.GetPendingIntent(0, (int)PendingIntentFlags.UpdateCurrent);

        // Build the notification
        NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
            .SetAutoCancel(true) // dismiss the notification from the notification area when the user clicks on it
                .SetContentIntent(resultPendingIntent) // start up this activity when the user clicks the intent.
                .SetContentTitle("Button Clicked") // Set the title
                .SetNumber(TagsCount) // Display the count in the Content Info
                .SetSmallIcon(Resource.Drawable.Icon) // This is the icon to display
                //.SetContentText(Java.Lang.String.Format("There are {0} new questions.",TagsCount)); // the message to display.
                .SetContentText(string.Format("There are new questions.")); // the message to display.

        NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle();

        builder.SetSound(RingtoneManager.GetDefaultUri(RingtoneType.Notification)); 
        Vibrator v = (Vibrator)GetSystemService (Context.VibratorService);


        //  Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
        // Vibrate for 500 milliseconds
        v.Vibrate(1000);
        // Finally publish the notification
        NotificationManager notificationManager = (NotificationManager)GetSystemService(Context.NotificationService);
        notificationManager.Notify(1000, builder.Build());
4

1 に答える 1