2017-06-16 56 views
-2

在Android上調用,調用監聽器拋出異常的方法的方法,「只有創建視圖層次原來的線程可以」 這裏是我的代碼:在Android上調用,調用監聽器拋出異常

public class MyClassAsync extends AsyncTask<String, String, ProfileInfo> { 
private Context mContext; 
private IGetTelegramUserInfoAsync mListener; 

protected ProfileInfo doInBackground(String... params) { 
// .... some code 
    mListener.GetResult(profileInfo) 
// ... 
helperMethod(); 
} 

private void helperMethod(){ 
    mListener.GetResult(profileInfo); //exception place 

} 
+0

異步? – Selvin

+0

只需做任何你需要做的就是'onPostExecute()'方法的結果(解除阻塞UI,解析它,無論如何) –

+0

@Selvin它告訴我新的Java和Android!並且我使用了AsyncTask因爲在方法中有很多異步調用 –

回答

0

你可能通過調用監聽器做 定義監聽器是這樣的:

public interface YourListener { 
    public void gotResultOfYourAsync(); 
} 

調用它以這種方式或在您的活動或片段實施:

public class Something { 
private YourListener yourListener; 

public void setTheListener(YourListener listener) { 
    yourListener = listener; 
} 

//你的異步任務裏面,你可以調用這個

yourListener.gotResultOfYourAsync(); 

這是一個有點複雜,但你可以你爲什麼如果您使用的API,它是已經在使用的AsyncTask問你的問題

+0

我找到了一個很好的實現例子:https://guides.codepath.com/android/Creating-Custom-Listeners – Meikiem

+0

感謝您的幫助我編輯了我的問題 –

+0

不客氣。此刻我很忙。我今晚會看到你的問題。 – Meikiem