2015-05-19 2 views
-1

в начале все работает хорошо, но я изменил ситуацию, и теперь сбой приложения, когда я открываю новую активность из потока (а не потока пользовательского интерфейса).Как открыть новую активность из потока с помощью обработчика

приложение только сбой на моем телефоне после установки, в режиме отладки он хорошо работает по какой-то причине, я не могу понять.

это мой обработчик:

handler = new Handler(Looper.getMainLooper()); 

// --- thread work function --- 
public void OnLoseActivity() 
{ 
    handler.post(new Runnable() { 
     @Override 
     public void run() { 
      Intent myActivity= new Intent(mainActivity.this, newActivity.class); 
      startActivity(myActivity); 
     } 
    }); 
} 

то, что я делаю неправильно?

необходимо решить другие проблемы до закрытия этого первого действия?

благодаря

Update:

причина я открыть деятельность из потока является то, что проверка нить что-то в цикле, если это happand деятельность shuold открыть.

Я не привык работать с обработчиками, объясните мне, если я делаю newb вещи, пожалуйста.

, как я писал, ничего особенного в LogCat, потому что на отладку, что он работает нормально

+1

Почему вы используете обработчик с исполняемым начать новую активность? – Karim

+1

сообщение logcat – ben75

+0

вам не нужен бит 'Looper.getMainLooper() – petey

ответ

0

Если вы используете это в деятельности, попробуйте это. Поместите свое намерение в метод и вызовите метод в вашем Runnable.

void startMyActivity() 
{ 
      Intent myActivity= new Intent(mainActivity.this, newActivity.class); 
      startActivity(myActivity); 
} 

и изменить ваш Runnable:

new Handler().post(new Runnable() { 
     @Override 
     public void run() { 
      startMyActivity(); 
     } 
    }); 
Смежные вопросы