如何在未启动主Activity的情况下从AsyncTask发送通知?

时间:2012-07-12 01:12:16

标签: android android-notifications android-notification-bar

我有一个AsyncTask,它在启动时启动(由服务调用)。在某些情况下,我想发送通知以启动主要活动。当我试着打电话时,我的问题出现了:

NotificationManager notManager = (NotificationManager) getSystemService(ns);

其中eclipse显示错误,因为AsyncTask没有getSystemService方法。有什么想法吗?

谢谢。

2 个答案:

答案 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中的后台线程结束时启动您的应用程序。