I'm trying to return the result from an IntentSerivce to the mainactivity using an intent, but I can't get it to work. The IntentService receives the intent from the activity without a problem, does it's thing and gets a JSONstring. Now the only problem left is to send this String back to the activity.
Here is the method in the mainactivity:
public String RTConn(String query){ System.out.println("Querying Rotten Tomatoes."); Intent rtIntent = new Intent(MainActivity.this, RTConnection.class); rtIntent.putExtra("query", query); bindService(rtIntent, RTConnection, Context.BIND_AUTO_CREATE); startService(rtIntent); String json = getIntent().getStringExtra("json"); return json; And here is the IntentService:
public void onStart(Intent intent, int startId){ System.out.println("intent Received"); String jsonString = rottenTomatoesSearch(intent.getStringExtra("query")); Intent RTRetur = new Intent(RTConnection.this, MainActivity.class); RTRetur.putExtra("json", jsonString); startActivity(RTRetur); } Obviously the startActivity isn't working, but what else is there to use? (I would rather not use a broadcast receiver). Regards Peter L.
Update
this it how the MainActivity looks atm:
public static final String RECEIVE_JSON = "student.kau.RECEIVE_JSON"; private BroadcastReceiver RTReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { System.out.println("broadcast Received: "+intent.getAction()); if(intent.getAction().equals(RECEIVE_JSON)){ System.out.println("JSON Received."); String serviceJsonString = intent.getStringExtra("json"); } } }; This code is the onCreate:
LocalBroadcastManager bManager = LocalBroadcastManager.getInstance(this); IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(RECEIVE_JSON); bManager.registerReceiver(RTReceiver, intentFilter); This is the method:
public void onStart(Intent intent, int startId){ System.out.println("intent Received"); String query = intent.getStringExtra("query"); String jsonString = rottenTomatoesSearch(query); System.out.println("Fetching done"); Intent RTRetur = new Intent(MainActivity.RECEIVE_JSON); System.out.println("action: "+RTRetur.getAction()); RTRetur.putExtra("json", jsonString); sendBroadcast(RTRetur); } The last trace in logcat is the System.out.println("action: "+RTRetur.getAction()");
-action: student.kau.RECEIVE_JSON