con*_*ers 18 android ui-thread toast android-activity
嗨,我想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));
}
}
Run Code Online (Sandbox Code Playgroud)
所以我的应用程序中的所有 Activity类现在都是简单的
public class AppMain extends MyActivity {
//blah
}
Run Code Online (Sandbox Code Playgroud)
我期望能够做到的(在工作线程中)是这样的:
try{
MyActivity me = (MyActivity) Looper.getMainLooper().getThread();
me.doToast("Hello World");
}
catch (Exception ex){
Log.e("oh dear", ex.getMessage());
}
Run Code Online (Sandbox Code Playgroud)
只要它Activity是一个" MyActivity它应该有用 - 但问题是---> Looper.getMainLooper().getThread();不是归还MyActivity给我而是它让我哭泣 - 我做错了什么?
:编辑:
一些背景解释"为什么"我坚持这种类型的implmentation.
我需要能够向用户确认"HTTP POST"事件是否成功.现在.如果用户点击UI表单上的"确定"它当时可能或者可能没有互联网..如果它有互联网 - 一切都很好 - 它通过HTTP POST发布表格一切都很好 ......但是如果有的话没有互联网最多(99.999%的Android应用程序跛足/可怜/ mewling在这,并基本上提供用户没有计划"b"假设在任何时候互联网在那里 - 当它不是)
我的应用程序不会"跛脚(我称之为)" - 它确实有一个计划"b"而不是"队列"发布事件并重试每x分钟..现在这是一个背景中的无声线程..我在整个应用程序中有大量的用户交互我不知道用户将在哪里"但最终当队列/重试/队列/重试的HTTP POST返回"!成功!"我希望将Toast其作为消息发送到用户(EG:"您的表格已发送")
Raw*_*ode 53
怎么了runOnUiThread?
http://developer.android.com/reference/android/app/Activity.html#runOnUiThread(java.lang.Runnable)
activity.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(activity, "Hello, world!", Toast.LENGTH_SHORT).show();
}
});
Run Code Online (Sandbox Code Playgroud)
使用下面的代码.创建包含活动实例的活动对象.
activity.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(activity.getApplicationContext(),"Toast text",Toast.LENGTH_SHORT).show();
}
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42400 次 |
| 最近记录: |