1

私にはサービスがあり、そのサービスにはスレッドがあります。スレッドには Runnable があります。ランナブルから通知を公開しようとしていますが、このエラーが発生しています。

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

スレッドの外から公開しようとすると、すべて正常に動作します。私のアプリケーションはサーバーから継続的に応答を受け取ります。サーバーから更新されたデータがあり、アプリが実行されていない場合、新しい通知が作成されます。メインスレッドでの実行を避けるために、新しいスレッドを作成しました。

4

2 に答える 2

1

thisa 内での参照は、 (yourまたは)Runnableのインスタンスではなく、インスタンスを参照します。ContextServiceActivityRunnable

次のことを試してください。

final Context context = this;
Runnable runnable = new Runnable() {
    @Override
    public void run() {
        ...
        setLatestInfo(context, charsequence1, charsequence2, pendingIntent);
    }
}
于 2013-07-23T07:07:52.393 に答える
0

定義したコンテキストが問題のようです。アクティビティまたはアプリケーションのコンテキストが必要です。

于 2013-07-23T07:06:31.383 に答える