我有一项服务,在那项服务中我有一个帖子。该线程有一个Runnable。从runnable我尝试发布通知,但我收到此错误。
The method setLatestEventInfo(Context, CharSequence, CharSequence, PendingIntent) in the type Notification is not applicable for the arguments (new Runnable(){}, CharSequence, CharSequence, PendingIntent)
如果我尝试从线程外部发布,一切正常。 我的应用程序不断从服务器获得响应。当服务器中有更新的数据且应用程序未运行时,将创建新通知。为了避免在主线程上运行,我创建了一个新线程。
答案 0 :(得分:1)
在this
内引用Runnable
并未引用Context
(您的Service
或Activity
)的实例,而是引用Runnable
实例
尝试以下方法:
final Context context = this;
Runnable runnable = new Runnable() {
@Override
public void run() {
...
setLatestInfo(context, charsequence1, charsequence2, pendingIntent);
}
}
答案 1 :(得分:0)
看起来您定义的上下文是问题所在。你应该拥有活动或应用程序的上下文。