android - Using intents for methods -


edit: updated code:

the notificationsetter method:

public void notificationsetter(){         intent myintent = new intent(this, myreceiver.class);         alarmmanager alarmmanager = (alarmmanager)getsystemservice(alarm_service);         pendingintent pendingintent = pendingintent.getbroadcast(this, 0, myintent, 0);         log.v("log","notificationsetter");         calendar calendar = calendar.getinstance();         calendar.set(calendar.hour_of_day, 21);         calendar.set(calendar.minute, 55);         calendar.set(calendar.second, 00);          alarmmanager.setrepeating(alarmmanager.rtc_wakeup, calendar.gettimeinmillis(), 24*60*60*1000 , pendingintent);     } 

the myreceiver class:

public class myreceiver extends broadcastreceiver {     private static final string tag = "myactivity";     @override     public void onreceive(context context, intent intent) {         string = "log recieved";         log.v(tag, "index=" + i);         frontpage.displaynotificationactivity(context);     } } 

and finally, displaynotificationactivity method:

public static void displaynotificationactivity(context context){     int notificationidone = 111;     notificationcompat.builder mbuilder = new notificationcompat.builder(context);      mbuilder.setcontenttitle("leibniz vertretungsplan");     mbuilder.setcontenttext("schau dir den vertretungsplan an!");     mbuilder.setticker("leibniz vertretungsplan");     sharedpreferences pref= preferencemanager.getdefaultsharedpreferences(context);     string text = pref.getstring("notifications_new_message_ringtone","");     mbuilder.setsound(uri.parse(text));     mbuilder.setautocancel(true);     sharedpreferences pref2= preferencemanager.getdefaultsharedpreferences(context);     boolean vibrate = pref2.getboolean("notifications_new_message_vibrate",false);     if(vibrate){         mbuilder.setvibrate(new long[] {1000, 1000});     }     mbuilder.setlights(0xffff0000,5000,5000);     mbuilder.setsmallicon(r.mipmap.ic_launcher);     //mbuilder.setnumber(++nummessagesone);     intent resultintent = new intent(context, vertretungsplanheuteactvity.class);     taskstackbuilder stackbuilder = taskstackbuilder.create(context);     stackbuilder.addparentstack(frontpage.class);     stackbuilder.addnextintent(resultintent);     pendingintent resultpendingintent =             stackbuilder.getpendingintent(                     0,                     pendingintent.flag_one_shot //can used once             );      mbuilder.setcontentintent(resultpendingintent);     notificationmanager mynotificationmanager = (notificationmanager) context.getsystemservice(context.notification_service);     mynotificationmanager.notify(notificationidone, mbuilder.build());  } 

problem: notification not being displayed @ time set in calendar. logcat says notificationsetter used, onreceive method wasn't. start notifcationmethod button press, change in future.

create broadcastreceiver class this:

public class myreceiver extends broadcastreceiver {     @override     public void onreceive(context context, intent intent) {          mainactivity.displaynotification(context);     } } 

add manifest:

<receiver android:name=".myreceiver"/> 

create pendingintent alarm this:

intent myintent = new intent(this, myreceiver.class); pendingintent pendingintent = pendingintent.getbroadcast(this, 0, myintent, 0); 

change displaynotification() method takes context parameter , make static (so can called myreceiver). in displaynotification() replace uses of this context. you'll need use context reference call methods getapplicationcontext() , getsystemservice().

should work ;-)


Comments

Popular posts from this blog

javascript - AngularJS custom datepicker directive -

javascript - jQuery date picker - Disable dates after the selection from the first date picker -