1) I have an utill class which I call from an Activity by passing the activity context.
2) Using the context I call a Service ( startService() ) from the utill class
3) I try receiving the result (by over-riding onReceiveResult() ) back in the original activity.
Is this approach correct? onReceiveResult() in the activity is not called !! Please advice
Method of Utill Class
public static void openExpenseDetailsScreen(Context context, String type, String entityID)
{
Intent serviceIntent = new Intent(context,ZExpenseService.class);
serviceIntent.putExtra("entity",APIConstants.EXPENSE_DETAILS);
serviceIntent.putExtra("entity_id",entityID);
serviceIntent.putExtra(StringConstants.fromReportDetails,true);
context.startService(serviceIntent);
}
Result is set from the Service Class
resultBundle.putSerializable("expense_details", getExpenseDetails(context,entity_id));
if (receiver != null)
{
if (TextUtils.isEmpty(errorMessage))
{
receiver.send(STATUS_FINISHED, resultBundle);
}
else
{
resultBundle.putString("errormessage", errorMessage);
resultBundle.putInt("errorCode", errorCode);
receiver.send(STATUS_ERROR, resultBundle);
}
}
OnReceiveResult over-rided in the activity
@Override
public void onReceiveResult(int resultCode, Bundle resultData)
{
if(progressDialog.isShowing())
{
progressDialog.dismiss();
}
switch (resultCode)
{
case ZExpenseService.STATUS_FINISHED:
{
if (resultData.containsKey("expense_details"))
{
// Handle result
}
break;
}
case ZExpenseService.STATUS_ERROR:
{
// Handle error
break;
}
}
}