我可以从Android上的Java调用(线程安全)方法吗? 会给我一个后台任务的前台活动句柄吗? 我希望能够这样做,以便安全地在上面发布吐司 顶窗。
感谢。
答案 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
}
});
但是,这不一定是线程安全的