0

有没有我可以从 Android 上的 Java 调用的(线程安全)方法,它可以让我处理来自后台任务的前台活动?我希望能够这样做,以便在顶部窗口的顶部安全地发布祝酒词。

谢谢。

4

2 回答 2

0

您不一定要获得前台 UI 活动的句柄来显示 toast 消息。您可以从这样的后台线程执行此操作:

runOnUiThread(new Runnable() {
    public void run() {
        // make toast, show toast
    }
});
于 2013-05-19T14:53:47.243 回答
0

创建您自己的扩展 AsyncTask 的类并将 Activity 作为参数之一传递:

public class MyAsyncTask extends AsyncTask<String, String, String>{

    Activity mActivity;

    public MyAsyncTask (Activity mActivity){
        this.mActivity = mActivity;
    }

    @Override
    protected String doInBackground(String... urls) {


        return null;

    }

    @Override
    protected void onPostExecute(String result) {

    }

}

这样做应该允许您访问 Activity(假设它始终是前台;可能不一定是这种情况)。

如果有可能它不是前台活动,您可能只想使用:

runOnUiThread(new Runnable() {
    public void run() {
        // Do UI stuff here
    }
}); 

但是,这不一定是线程安全的

于 2013-05-19T17:22:53.880 回答