2015-05-19 22 views
-1

在開始時,每件事情都很好,但是當我從一個線程(而不是UI線程)中打開新活動時,我改變了事情,現在applcation崩潰。如何使用處理程序從線程中打開新活動

安裝後,應用程序只會在我的手機上崩潰,在調試模式下,由於某些原因,我無法理解,它工作正常。

這是我的處理程序:

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); 
     } 
    }); 
} 

的東西,我做錯了什麼?

需要在關閉此第一個活動之前處理其他問題?

感謝

更新:

我打開活動從一個線程的原因是線程的東西在一個循環檢查,如果happand活動shuold打開。

我不習慣與處理程序一起工作,請向我解釋如果我在做新事物請。

爲我寫的,沒有在logcat的特別,因爲在調試它。如果你在活動運行此工作的罰款

+1

你爲什麼要使用一個可運行的處理程序來啓動新的活動? – Karim

+1

發佈logcat – ben75

+0

您不需要'Looper.getMainLooper()'位 – petey

回答

0

,試試這個。將你的Intent放在一個方法中,並在Runnable中調用該方法。

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

,改變你的Runnable:

new Handler().post(new Runnable() { 
     @Override 
     public void run() { 
      startMyActivity(); 
     } 
    }); 
相關問題