在doInBackground中我需要引用应用程序上下文或活动。
在线程安全和其他可能的多线程概念,限制方面,new MyAsyncTask(getApplicationContext())
和doInBackground(Context... params)
之间是否有任何区别?
感谢。
答案 0 :(得分:1)
没有。假设你有类似的东西:
private class MyAsyncTask extends AsyncTask<Context, Integer, Long> {
private Context _context = null;
MyAsyncTask(Context context) {
_context = context;
}
protected Long doInBackground(Context... context) {
// if _context and context are the same, it doesn't matter
// which you use.
return 0;
}
protected void onProgressUpdate(Integer... progress) {
// update progress
}
protected void onPostExecute(Long result) {
// publish result
}
}
然后,关于Context本身的多线程没有固有的问题。
Context useMe = getApplicationContext();
MyAsyncTask task = new MyAsyncTask(useMe);
task.execute(useMe); // should use this if provided, otherwise, what was in constructor