从服务中连续运行的线程发布通知

时间:2013-07-23 07:00:38

标签: java android android-notifications

我有一项服务,在那项服务中我有一个帖子。该线程有一个Runnable。从runnable我尝试发布通知,但我收到此错误。

The method setLatestEventInfo(Context, CharSequence, CharSequence, PendingIntent) in the type Notification is not applicable for the arguments (new Runnable(){}, CharSequence, CharSequence, PendingIntent)

如果我尝试从线程外部发布,一切正常。 我的应用程序不断从服务器获得响应。当服务器中有更新的数据且应用程序未运行时,将创建新通知。为了避免在主线程上运行,我创建了一个新线程。

2 个答案:

答案 0 :(得分:1)

this内引用Runnable并未引用Context(您的ServiceActivity)的实例,而是引用Runnable实例

尝试以下方法:

final Context context = this;
Runnable runnable = new Runnable() {
    @Override
    public void run() {
        ...
        setLatestInfo(context, charsequence1, charsequence2, pendingIntent);
    }
}

答案 1 :(得分:0)

看起来您定义的上下文是问题所在。你应该拥有活动或应用程序的上下文。