Thursday, 15 March 2012

java - How can I pass variable from one activity to another without device crashing for NPE? -



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