Ich habe versucht, eine Mitteilung mit diesem Kodex zu erstellen:Meldung anlegen mit BroadcastReceiver
private void setNotificationAlarm(Context context)
{
Intent intent = new Intent(getApplicationContext() , MyNotification.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000 , pendingIntent);
Log.d("ME", "Alarm started");
}
public class MyNotification extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
Log.d("ME", "Notification started");
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("My notification")
.setContentText("Hello World!");
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(1, mBuilder.build());
}
}
Und hier meine Mainfest Erklärung:
<receiver
android:name=".MyNotification"
android:enabled="true"
android:exported="false" >
</receiver>
Mein Problem ist jetzt, dass der Alarm erzeugt wird, aber die Mitteilung wird nicht angezeigt. Der BroadcastReceiver wird in der Mainfest-Datei deklariert und es gibt keine Compiler- oder Laufzeitfehler.
Mein zweites Problem ist, dass setLatestEventInfo
und new Notification
Contructor veraltet sind. Was kann ich anstelle davon verwenden?
in Ordnung dank definieren für Das. Ich habe meinen obigen Code aktualisiert. Nichts passiert gerade ... – Cilenco
BroadcastReceiver arbeiten im Allgemeinen an einer Aktion. Definieren Sie eine Aktion, mit der Ihr Broadcastempfänger arbeiten wird, und fügen Sie diese Aktion dem Manifest & in der Absicht hinzu. Mehr Details [hier] (http://www.vogella.com/articles/AndroidBroadcastReceiver/article.html) –