android - Received an intent in the IntentService class -
i have checkboxlist user selectes items envloping selecting in json format subsequently firing json string alarmmanager afterwards trying send getllrd intentservice class facing problem not receiving intent in getllrd class since not getting of outputs in getllrd class.
how can fix it?
code in mainactivity:
intent intentjson = new intent(mainactivity.this, getllrd.class); intentjson.putextra("json_data", json); pendingintent pintent = pendingintent.getservice(getapplicationcontext(), 3, intentjson, 0); alarmmanager alarm = (alarmmanager) getsystemservice(context.alarm_service); calendar cal = calendar.getinstance(); alarm.setrepeating(alarmmanager.rtc_wakeup, cal.gettimeinmillis(), 5 * 1000, pintent); system.out.println("test intentjson output: " +intentjson); startservice(intentjson); getllrd class:
public class getllrd extends intentservice { public getllrd(string name) { super(name); } @override public int onstartcommand(intent intent, int flags, int startid) { string jsonstring = intent.getstringextra("json_data"); system.out.println("test json " + jsonstring); return super.onstartcommand(intent, flags, startid); } @override protected void onhandleintent(intent intent) { string jsonstring = intent.getstringextra("json_data"); system.out.println("test" + jsonstring); if(jsonstring != null){ system.out.println("test"); } } }
you have register broadcast receiver in pending intent.you may doing wrong creating pending intent service.for notified alarm manager need use broadcast receiver.
register alarmmanager
int request_code= 0; calendar calendar = calendar.getinstance(); int hour = 13; int minute = 00; calendar.set(calendar.hour_of_day, hour);//24 hour format calendar.set(calendar.minute, minute); calendar.set(calendar.second, 00); /*calendar.set(calendar.am_pm, peried.equalsignorecase("am") ? calendar.am : calendar.pm);*/ intent myintent = new intent(context, myreceiver.class); myintent.putextra("json_data", json); pendingintent pendingintent = pendingintent.getbroadcast(context, request_code, myintent, pendingintent.flag_update_current); alarmmanager alarmmanager = (alarmmanager) context.getsystemservice(context.alarm_service); alarmmanager.setrepeating(alarmmanager.rtc_wakeup, cal.gettimeinmillis(), 5 * 1000, pendingintent ); receiver
public class myreceiver extends broadcastreceiver { @override public void onreceive(context context, intent intent) { try { string action = intent.getstringextra("json_data"); new showtoast(context, action); if (action.length() > 1) { startservice(context, action); } } catch (exception e) { } } public void startservice(context context, string action) { intent service1 = new intent(context, getllrd.class); service1.putextra("json_data", action); context.startservice(service1); } } register receiver in manifest , request using alarmmanager permission too.
<uses-permission android:name="android.permission.wake_lock" /> <receiver android:name=".myreceiver" />
Comments
Post a Comment