2013-01-31 2 views
0

Я создал этот класс, но я не могу получить всплывающее сообщение, которое должно быть создано после успешного хранения в stackmob.Android Toast метод в обратном вызове не показан

public class TaskActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
csuper.onCreate(savedInstanceState); 
    //setContentView(R.layout.TaskActivity; 
    setContentView(R.layout.activity_task); 
    StackMobAndroid.init(getApplicationContext(), 0, "010686ac-9fb2-4c70-bbec-c2d92ccdc39d"); 
    Task myTask = new Task("Learn even more about StackMob", new Date(0)); 
    myTask.save(new StackMobModelCallback() { 
     @Override 
     public void success() { 
      // the call succeeded 
      // Toast.makeText(this, "No camera on this device",0).show(); 

        Toast msg = Toast.makeText(TaskActivity.this, 
       "i have done it", Toast.LENGTH_LONG); 
        msg.show(); 
      } 

      @Override 
      public void failure(StackMobException e) { 
       // the call failed 
      } 
    }); 
} 
+1

Вы проверили, является ли контроль протекающего в успехе() метод? Если вы не просто добавите Log.d() в свой метод success() и проверьте. Ваш код Toast просто замечательный. – Kanth

+0

ли метод успеха работает на другом потоке? – nandeesh

ответ

1

Вы знаете, если функция success будет называться в потоке пользовательского интерфейса?

Если нет, то вы должны изменить это так:

public void success() { 
    // the call succeeded 
    TaskActivity.this.runOnUiThread(new Runnable() { 
     @Override 
     void run() { 
      Toast msg = Toast.makeText(TaskActivity.this, 
       "i have done it", Toast.LENGTH_LONG); 
      msg.show(); 
     }); 
} 

См runOnUiThread

Смежные вопросы