java - How can I pass variable from one activity to another without device crashing for NPE? -
i have next in code app keeps on crashing.
mainactivity:
new intent(context, retrieveinfoactivity.class).putextra("interval", interval);
retrieveinfoactivity:
intent intent = new intent (context, mainactivity.class); long intervalalarm = intent.getextras().getlong("interval"); //i maintain getting npe here.
i think might know why, since doing in oncreate(), it's trying grab value before alarm set/interval set mainactivity. wondering how can create doesn't grab value when interval not set/not null?
edit:
i have in oncreate() , never gets called though should. should setting somewhere else?
if (getintent().getextras()!= null) { intervalalarm = getintent().getextras().getlong("interval"); system.out.println("interval: " + intervalalarm); }
edit: method called in doinbackground in async task!
private void setalarms() { alarmmanager manager = (alarmmanager) getsystemservice(context.alarm_service); intent intent = new intent(context, alarmreceiver.class); pendingintent = pendingintent.getbroadcast(context, 0, intent, 0); interval = 900000l; seek { ..... new intent(context, retrieveinfoactivity.class).putextra("pendingintent", pendingintent); new intent(context, retrieveinfoactivity.class).putextra("interval", interval); //set alarm repeat manager.setrepeating(alarmmanager.rtc_wakeup, timeinmilis, interval, pendingintent); new intent(context, time.class); //instantiates intent launch new activity intent myintent = new intent(mainactivity.this, retrieveinfoactivity.class); mainactivity.this.startactivity(myintent); } catch(parseexception e) { e.printstacktrace(); } }
inside retrieveinfoactivity
should utilize
long intervalalarm = getintent().getextras().getlong("interval");
instead of
intent intent = new intent (context, mainactivity.class); long intervalalarm = intent.getextras().getlong("interval");
edit.
in code should create 1 intent , fill info want provide new activity. e.g.
intent intent =new intent(mainactivity.this, retrieveinfoactivity.class); intent.putextra("pendingintent", pendingintent); intent.putextra("interval", interval); mainactivity.this.startactivity(intent);
java android
No comments:
Post a Comment