0

私はほとんどどこでも見てきました!通知を毎週、毎時間、または毎月トリガーするためのヘルプ、チュートリアル、または例が見つかりません。AlarmManager の使用についていくつか聞いたことがありますが、機能させることができません。

私は Java をあまり使ったことがありません (むしろ Objective-C のやつです) が、この通知システムに問題があります。基本的には、オンに切り替えると毎週ユーザーにアプリを再度開くように通知するボタンが必要です(たとえば)。そしてもちろん、「アプリを開く」ように毎週通知されたくない場合にトリガーします。とにかく、何かアイデアはありますか?一般的に通知を受け取る方法を理解しましたが、通知を遅らせたり、アプリが開いていないときに通知を受け取ったりすることはできません。

ありがとう!

4

2 に答える 2

3
 Calendar calendar = Calendar.getInstance();

    // 8 AM Each day 
    calendar.set(Calendar.HOUR_OF_DAY, 8);
    calendar.set(Calendar.MINUTE, 0);
    calendar.set(Calendar.SECOND, 0);
    AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
    PendingIntent pi = PendingIntent.getService(context, 0, new Intent(context, MyClass.class), PendingIntent.FLAG_UPDATE_CURRENT);
    am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pi);

これにより、毎日午前 8 時にアラームが発生します。同様に、好きな日にアラームを設定できます。

通知を受け取るには:

  NotificationManager nm;
  nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);        
  CharSequence from = "VIPUL";
  CharSequence message = "Crazy About Android...";
  PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
    new Intent(), 0);
  Notification notif = new Notification(R.drawable.icon,
    "Crazy About Android...", System.currentTimeMillis());
  notif.setLatestEventInfo(context, from, message, contentIntent);
  nm.notify(1, notif);

これは、アラーム マネージャから呼び出すアクティビティに記述する必要があります。これにより、通知が表示されます。

ユーザーが通知をクリックしたときに呼び出される保留中のインテントを設定することもできます。

于 2012-07-04T07:06:01.247 に答える
0

実際、 AlarmManagerクラス、特にそのsetRepeating()メソッドを確認する必要があります。アクションをトリガーする間隔を設定できます。お役に立てれば。

于 2012-07-04T06:56:56.083 に答える