嗨調用UI線程我要讓Toast
提供給我無事,什麼,可從每當我喜歡我的應用程序中的任何線程。因此,要做到這一點,我擴展了Activity
類:機器人 - 從工作線程
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.widget.Toast;
public class MyActivity extends Activity{
private Handler mHandler;
@Override
public void onCreate(Bundle savedInstanceState) {
mHandler = new Handler();
super.onCreate(savedInstanceState);
}
private class ToastRunnable implements Runnable {
String mText;
public ToastRunnable(String text) {
mText = text;
}
public void run(){
Toast.makeText(getApplicationContext(), mText, Toast.LENGTH_SHORT).show();
}
}
public void doToast(String msg) {
mHandler.post(new ToastRunnable(msg));
}
}
使所有Activity
類在我的應用程序,現在只是
public class AppMain extends MyActivity {
//blah
}
什麼,我希望能夠做到(在輔助線程)是這樣的:
try{
MyActivity me = (MyActivity) Looper.getMainLooper().getThread();
me.doToast("Hello World");
}
catch (Exception ex){
Log.e("oh dear", ex.getMessage());
}
,因此只要Activity
是「MyActivity
」它應該工作 - 但問題是--->Looper.getMainLooper().getThread();
沒有返回MyActivity
給我,它讓我哭了 - 我做錯了什麼?
:編輯:
一些背景來解釋 「爲什麼」 我堅持這種類型implmentation的。
我需要能夠確認到,一個「HTTP POST」事件已經是成功的用戶。現在。如果用戶點擊UI「OK」的形式,它可能或不可能有互聯網在那個時候..如果有互聯網 - 一切都很好 - 它通過HTTP POST 職位形式都很好 ..但如果有大多數(99.999%的Android應用程序跛腳/可憐/喵喵在此,基本上提供用戶沒有計劃「b」假設在任何時候都有互聯網 - 當它不是)
我的應用程序不會「走瘸(我稱之爲)」 - 它確實有一個計劃「b」而是「隊列」的帖子事件和重試每隔x分鐘。現在這是一種無聲的線程中背景..我有很多用戶交互的應用程序,我不知道用戶在哪裏將「成爲」,但最終當隊列/重試/隊列/重試的HTTP POST返回「!成功! 「我想Toast
,作爲一個消息給用戶(例如:‘你的形式發送’)
不,我要發佈'Toast'消息給用戶,'runOnUiThread'接受'的Runnable Action'其中'Toast'不 – conners
工作沒有'activity'因爲沒有'上下文' – conners
爲什麼不使用'getApplicationContext()'? – Rawkode