2016-09-17 5 views
0

こんにちは私はこの例をhttps://developer.android.com/training/notify-user/managing.html から得ましたが、ほとんど変更はありませんでしたが、私は機能について50の通知を出していますが、すべての50が一緒になって、すべてを1〜5分で表示できます。 私のコードのプラザでコードの下この通知の時間を置く方法..!

MainActivity.java

public class MainActivity extends AppCompatActivity { 


Button button; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    button = (Button) findViewById(R.id.btn1); 
    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      final Calendar calendar = Calendar.getInstance(); 


      Intent intent = new Intent(getApplicationContext(), AlertReceiver.class); 

      final PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 100, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
     //  final PendingIntent pendingIntent1 = PendingIntent.getBroadcast(getApplicationContext(), 101, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
     // final PendingIntent pendingIntent2 = PendingIntent.getBroadcast(getApplicationContext(), 102, intent, PendingIntent.FLAG_UPDATE_CURRENT); 

      final AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
     // final AlarmManager alarmManager1 = (AlarmManager) getSystemService(ALARM_SERVICE); 
     //  final AlarmManager alarmManager2 = (AlarmManager) getSystemService(ALARM_SERVICE); 

      alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_FIFTEEN_MINUTES/90, pendingIntent); 
     //  alarmManager1.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_FIFTEEN_MINUTES , pendingIntent1); 
     // alarmManager2.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_FIFTEEN_MINUTES , pendingIntent2); 

     } 
    }); 

} 

AlertReciever.class

public class AlertReceiver extends BroadcastReceiver { 



@Override 
public void onReceive(final Context context, Intent intent) { 
    NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
    final Intent repeating_intent = new Intent(context, Activity12.class); 
    // repeating_intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

    PendingIntent pendingIntent = PendingIntent.getActivity(context, 100, repeating_intent, PendingIntent.FLAG_UPDATE_CURRENT); 
    NotificationCompat.Builder builder = new NotificationCompat.Builder(context).setContentIntent(pendingIntent) 
      .setSmallIcon(R.drawable.ic_launcher) 
      .setContentTitle("AAA") 
      .setOngoing(false) 

      .setContentText("BBB"); 
    builder.setAutoCancel(true); 


    notificationManager.notify(100, builder.build()); 


    new Handler().postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      for (int a = 0; a < 5; a++) { 
       PendingIntent pendingIntent1 = PendingIntent.getActivity(context, a, repeating_intent, PendingIntent.FLAG_UPDATE_CURRENT); 
       NotificationCompat.Builder builder1 = new NotificationCompat.Builder(context).setContentIntent(pendingIntent1) 
         .setSmallIcon(R.drawable.ic_launcher) 
         .setContentTitle("CCC") 
         .setContentText("DDD") 
         .setOngoing(false) 
         .setAutoCancel(true); 

       int numMessages = 0; 

       builder1.setContentText("addsadasdadad") 
         .setNumber(++numMessages); 

       builder1.setAutoCancel(true); 
       NotificationManager notificationManager1 = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 

       notificationManager1.notify(a, builder1.build()); 

      } 
     } 
    }, 1 * 60 * 1000); 

答えて

0

を見てみます動作しませんでした助けます。この方法を使用してalaram設定

Handler mHandler=new Handler; 
mHandler.postDelayed(mRunnable, 60000); 

Runnable mRunnable=new Runnable() 
{ 
    @Override 
    public void run() 
    { 
     // your notification code 
     mHnadler.postDelayed(mRunnable ,60000); 

    } 
} 
+0

私が参照mRunnableすべきか? – CJS

+0

私はオーバーライド実行で問題が発生しました – CJS

+0

runnableは、メインスレッドでリクエストを処理するために使用されるインターフェイスです。あなたの場合は通知を表示するように要求します。 実行可能オブジェクトを適切に作成します。オーバーライド問題は発生しません。 –

0

//(必要にaccroding時間を置く)

public static void setAlarm(Context context, String action, int actionCode, long syncTime) 
    { 
     AlarmManager alarmMgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
     Intent intent = new Intent(action); 
     intent.putExtra(ACTION, actionCode); 
     PendingIntent alarmIntent = PendingIntent.getBroadcast(context, actionCode + 1000, intent, 0); 
     alarmMgr.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + (interval), interval, alarmIntent); 
    } 

//置く意図reciver

public class AlarmIntentReceiver extends BroadcastReceiver 
{ 

    public static final int ACTION_NAME= 101; 


    @Override 
    public void onReceive(Context context, Intent intent) 
    { 
     int action = intent.getIntExtra(AlarmUtil.ACTION, 0); 
     switch(action) 
     { 
      case ACTION_XYZ: 
//perform action according to need   
break; 
     } 
    } 
} 
+0

5分+(インターバル)、インターバル、 – CJS

+0

ここに入れてはいけないことSystemClock.elapsedRealtime()+ 5,5(ここで5分はインターバルです) –

+0

私はuが好きでした書きましたが、私はonclicklistenerで呼び出すことはできません – CJS

関連する問題