Jaiel
Dauer-User
- 235
Hallo,
ich zeig euch wie ich eine Notification absetze, die wenn man auf die Notification klickt eure App öffnet.
Folgende Schritte müssen gemacht werden:
-Eine Klasse anlegen die von BroadcastReceiver erbt und die Methode onReceive überschreiben
-In einer Activity eurer Wahl 2 Funktionen setAlarm(int seconds) und cancelAlarm() anlegen, die euren Alarm setzen oder löschen
-Im Android Manifest den Receiver eintragen
Ok hier erstmal der Code für den BroadcastReceiver:
Hier der Code für die Methoden in der Activity, mit denen ein Alarm gesetzt oder abgebrochen werden kann:
Ein Alarm der denselben PendingIntent hält wird sich immer wieder neu aktualisieren.
Und diese Zeilen müssen noch zwischen die <application> Tags geschrieben werden, sie erlauben euch den AlarmManager zu setzen und den Receiver anzumelden:
ich zeig euch wie ich eine Notification absetze, die wenn man auf die Notification klickt eure App öffnet.
Folgende Schritte müssen gemacht werden:
-Eine Klasse anlegen die von BroadcastReceiver erbt und die Methode onReceive überschreiben
-In einer Activity eurer Wahl 2 Funktionen setAlarm(int seconds) und cancelAlarm() anlegen, die euren Alarm setzen oder löschen
-Im Android Manifest den Receiver eintragen
Ok hier erstmal der Code für den BroadcastReceiver:
Code:
package my.mypackage.myfolder;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.support.v4.app.NotificationCompat;
public class MyBroadcastReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
createNotification(context,"Title","Text","Tickertext");
}
public void createNotification(Context context,String contentTitle,
String contentText,String tickerText)
{
Bitmap largeIcon=BitmapFactory.decodeResource(context.getResources(),
R.drawable.ic_notification_large);
PendingIntent pendingIntent=PendingIntent.getActivity(context,0,
new Intent(context,MyEntryActivity.class),0);
NotificationCompat.Builder notificationBuilder=
new NotificationCompat.Builder(context)
.setLargeIcon(largeIcon)
.setSmallIcon(R.drawable.ic_notification_small)
.setContentTitle(contentTitle)
.setContentText(contentText)
.setTicker(tickerText);
notificationBuilder.setContentIntent(pendingIntent);
notificationBuilder.setDefaults(NotificationCompat.DEFAULT_ALL);
notificationBuilder.setAutoCancel(true);
NotificationManager notificationManager=(NotificationManager)
context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(1, notificationBuilder.build());
}
}
Hier der Code für die Methoden in der Activity, mit denen ein Alarm gesetzt oder abgebrochen werden kann:
Code:
final int ALARM_ID=1;
public void setAlarmForNotification(int seconds)
{
long alarmTime=System.currentTimeMillis()+seconds*1000;
Intent myBroadcastReceiverIntent=new Intent(this,MyBroadcastReceiver.class);
AlarmManager alarmManager=(AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC, alarmTime,PendingIntent.getBroadcast(this,
ALARM_ID,myBroadcastReceiverIntent,PendingIntent.FLAG_UPDATE_CURRENT));
}
public void cancelAlarmForNotification()
{
AlarmManager alarmManager=(AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarmManager.cancel(PendingIntent.getBroadcast(this,ALARM_ID,
new Intent(this,MyBroadcastReceiver.class),
PendingIntent.FLAG_UPDATE_CURRENT));
}
Ein Alarm der denselben PendingIntent hält wird sich immer wieder neu aktualisieren.
Und diese Zeilen müssen noch zwischen die <application> Tags geschrieben werden, sie erlauben euch den AlarmManager zu setzen und den Receiver anzumelden:
Code:
<receiver android:name=".MyBroadcastReceiver"/>
Zuletzt bearbeitet: