android异步获取前台活动

时间:2013-05-19 14:50:45

标签: android android-activity background-thread

我可以从Android上的Java调用(线程安全)方法吗? 会给我一个后台任务的前台活动句柄吗? 我希望能够这样做,以便安全地在上面发布吐司 顶窗。

感谢。

2 个答案:

答案 0 :(得分:0)

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

runOnUiThread(new Runnable() {
    public void run() {
        // make toast, show toast
    }
});

答案 1 :(得分: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
    }
}); 

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