I am getting this error from my android log and I have looked to other threads that have this kind of problem but i still cannot fix my own problem
Basically, i would like to update my UI from service class by callback mechanism
//this method is inside the fragment class
public void updateProgress(int progress){
switch(progress){
case Constants.ProgressUIPostUser.PD_VALIDATE_USER:
pdPostUserLoading = ProgressDialog.show(getActivity(), "Registration", "Validating user...", true, false);
break;
case Constants.ProgressUIPostUser.PD_POSTING_DATA:
pdPostUserLoading = ProgressDialog.show(getActivity(), "Registration", "Posting data...", true, false);
break;
case Constants.ProgressUIPostUser.PD_OPEN_CONNECTION:
pdPostUserLoading = ProgressDialog.show(getActivity(), "Registration", "Open connection...", true, false);
break;
case Constants.ProgressUIPostUser.PD_OBTAINING_RESPONSE:
pdPostUserLoading = ProgressDialog.show(getActivity(), "Registration", "Obtaining Response...", true, false);
break;
case Constants.ProgressUIPostUser.PD_DISMISS:
if(pdPostUserLoading != null)
pdPostUserLoading.dismiss();
break;
}
}
Then i called this statement from processor class (which is called from the service class)
callback.updateProgress(Constants.ProgressUIPostUser.PD_OPEN_CONNECTION);
From the service class
public interface Callback {
void updateProgress(int progress);
}
class Task implements Runnable{
public void run(){
PostNewUserProcessor processor = new PostNewUserProcessor(mCallback);
boolean valid = processor.postUser(newUser);
if(valid){
//Todo
}
else{
//TODO
}
}
public void postUser(Bundle data){
//Retrieve data from the intent
newUser = data.getParcelable(Constants.NEW_USER);
new Thread(new Task());
}
Log error
07-18 18:52:44.994 8942-9612/? E/AndroidRuntime﹕ FATAL EXCEPTION: Thread-1137
java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
at android.os.Handler.<init>(Handler.java:197)
at android.os.Handler.<init>(Handler.java:111)
at android.app.Dialog.<init>(Dialog.java:108)
at android.app.AlertDialog.<init>(AlertDialog.java:114)
at android.app.AlertDialog.<init>(AlertDialog.java:98)
at android.app.ProgressDialog.<init>(ProgressDialog.java:77)
at android.app.ProgressDialog.show(ProgressDialog.java:110)
at android.app.ProgressDialog.show(ProgressDialog.java:104)
at com.robertlimantoproject.bookreviewapp.activity.RegistrationPageFragment.updateProgress(RegistrationPageFragment.java:354)
at com.robertlimantoproject.bookreviewapp.processor.PostNewUserProcessor.postUser(PostNewUserProcessor.java:81)
at com.robertlimantoproject.bookreviewapp.service.PostNewUserService$Task.run(PostNewUserService.java:61)
at com.robertlimantoproject.bookreviewapp.utils.Util$1.run(Util.java:36)