2016-07-13 38 views
2

Ich habe versucht, einen Alarm zu machen, der jeden Tag um 8:00 Uhr eine Benachrichtigung anzeigt. Aber es ist überhaupt nicht aufgetaucht. Dann habe ich versucht, eine Taste zu machen, um nach 5 Sekunden eine Benachrichtigung anzuzeigen. Ich habe versucht, diesen CodeBenachrichtigung wird nicht angezeigt

AlarmReceiver.java

public class AlarmReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     createNotification(context, "8A.M activity","It's time for breakfast!","Alert"); 
    } 
    public void createNotification(Context context, String msg, String msgText,String msgAlert){ 
     PendingIntent notificIntent = PendingIntent.getActivity(context,0,new Intent(context, MainActivity.class),0); 
     NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context) 
       .setSmallIcon(R.drawable.logo_2424) 
       .setContentTitle(msg) 
       .setTicker(msgAlert) 
       .setContentText(msgText); 
     mBuilder.setContentIntent(notificIntent); 
     mBuilder.setDefaults(NotificationCompat.DEFAULT_SOUND); 
     mBuilder.setAutoCancel(true); 
     NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
     mNotificationManager.notify(1, mBuilder.build()); 
    } 
} 

MainActivity.java

public class MainActivity extends AppCompatActivity { 
    Button nof 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     nof = (Button) findViewById(R.id.btnNoftification); 


     Intent myIntent = new Intent(MainActivity.this , AlarmReceiver.class); 
     final AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); 
     //PendingIntent pendingIntent = PendingIntent.getService(this, 0, myIntent, 0); 
     Calendar calendar = Calendar.getInstance(); 
     calendar.set(Calendar.HOUR_OF_DAY, 8); 
     calendar.set(Calendar.MINUTE, 00); 
     calendar.set(Calendar.SECOND, 00); 
     alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 24*60*60*1000 , PendingIntent.getBroadcast(MainActivity.this,1,myIntent,PendingIntent.FLAG_UPDATE_CURRENT)); //set repeating every 24 hours 

     nof.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Long alertTime = new GregorianCalendar().getTimeInMillis()+5*1000; 
       Intent alertIntent = new Intent(MainActivity.this,AlarmReceiver.class); 
       AlarmManager alarmManager1 = (AlarmManager)getSystemService(Context.ALARM_SERVICE); 
       alarmManager.set(AlarmManager.RTC_WAKEUP,alertTime,PendingIntent.getBroadcast(MainActivity.this,1,alertIntent,PendingIntent.FLAG_UPDATE_CURRENT)); 
       //alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 24*60*60*1000 , PendingIntent.getBroadcast(MainActivity.this,1,myIntent,PendingIntent.FLAG_UPDATE_CURRENT)); //set repeating every 24 hours 
      } 
     }); 

ich bereits hinzugefügt Erlaubnis in AndroidManifest

<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/> 
+0

Haben Sie Ihre 'AlarmReceiver' Klasse in Manifest als Empfänger aufgenommen? – Marat

+0

oh danke, mein Herr: D –

+0

Hat es jetzt funktioniert? – Marat

Antwort

0

Fügen Sie Ihre AlarmReceiver-Klasse in AndroidManifest als Empfänger in das Feld <application /> ein.

<receiver android:name=".Alarms.AlarmReceiver"/>