有没有我可以从 Android 上的 Java 调用的(线程安全)方法,它可以让我处理来自后台任务的前台活动?我希望能够这样做,以便在顶部窗口的顶部安全地发布祝酒词。
谢谢。
有没有我可以从 Android 上的 Java 调用的(线程安全)方法,它可以让我处理来自后台任务的前台活动?我希望能够这样做,以便在顶部窗口的顶部安全地发布祝酒词。
谢谢。
您不一定要获得前台 UI 活动的句柄来显示 toast 消息。您可以从这样的后台线程执行此操作:
runOnUiThread(new Runnable() {
public void run() {
// make toast, show toast
}
});
创建您自己的扩展 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
}
});
但是,这不一定是线程安全的