我有一个AsyncTask,它在启动时启动(由服务调用)。在某些情况下,我想发送通知以启动主要活动。当我试着打电话时,我的问题出现了:
NotificationManager notManager = (NotificationManager) getSystemService(ns);
其中eclipse显示错误,因为AsyncTask没有getSystemService方法。有什么想法吗?
谢谢。
答案 0 :(得分:3)
因为getSystemService是Context类的方法。请查看here。
在调用函数之前,在AsyncTask中创建一个Context变量。然后在构造函数中初始化它,即
Context context;
public MyAsyncTask(Context contextin)
{ context = contextin;}
然后使用此上下文变量调用您的函数:
NotificationManager notManager = (NotificationManager) context.getSystemService(ns);
执行AsyncTask时不要忘记输入上下文:
MyAsyncTask mytask = new MyAsyncTask(getApplicationContext());
mytask.execute();
我也有一种感觉,IntentService更适合您的需求。
答案 1 :(得分:1)
您可以启动一个服务,在您的asynctask中的后台线程结束时启动您的应用程序。