2016-11-13 3 views
-1

У меня есть активность A и B Теперь у меня есть «событие», которое обрабатывается в другом потоке. При запуске приложения следует запустить B, а затем уничтожить A.Android, call finish() через Handler.post function

В потоке Ive обработчик для публикации материалов в потоке пользовательского интерфейса.

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

Теперь переключение не проблема, но вызов методы отделки() является:

hexample.post(new Runnable() { 
    @Override 
    public void run() { 
    Intent intent = new Intent(getApplicationContext(),LobbyActivity.class); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(intent); 
    ((Activity)getApplicationContext()).finish(); 
    } 
}); 

Это не работает, как мой класс не может быть приведен к android.app.Activity Как это сделать Работа?

ответ

0

Просто закончить() достаточно, нет необходимости бросать. Вы не можете назвать завершение другого действия в этой ситуации. Ваш сценарий работает только в том случае, если вы в действии A и хотите запустить B, затем запустите B и закончите A.

+0

Не ссылайтесь на ApplicationContext в намерениях. дайте резонирующий контекст такой LocateActivity.class, если вы не работаете в активности или службе, передайте контекст из Activity, когда вы сориентируете этот класс –

+0

im, работающий с уровня приложения, чтобы теперь передать текущую активность. Спасибо за помощь! – NotMeForSure