0

アクティビティ (ActivityA) があります。これは、アプリの開始アクティビティです。次に、ActivityA から Service (ServiceB) を呼び出します。次に、ServiceB は他のいくつかのパラメーターを読み込んで、タイトル バーに通知します。

mNotificationManager.notify(DataHolder.TITLE_BAR_NOTOFICATION_ID, notification);

私が今欲しいのは、何らかの通知が呼び出されたことを識別するための ActivityA です。そして、通知があることを示します。

助言がありますか?

4

1 に答える 1

0

私が今欲しいのは、何らかの通知が呼び出されたことを識別するための ActivityA です。そして、通知があることを示します。

  • 解決策は、Activity にカスタム ブロードキャストを起動させることです。ActivityA または ActivityB がonReceiveメソッドでそのブロードキャストを受信すると、通知を表示できます。

Class1 が何らかのタスクを実行しており、タスクが完了したら、他のクラスに通知したいとします。

public class Class1 extends Activity{

    public static final String CUSTOM_INTENT = "org.some.action";

    @Override
    public void onCreate(Bundle bundle) {

        //Do some operation.......now once operation is done send Broadcast 
         to other activities

        Intent i = new Intent();
        i.setAction(CUSTOM_INTENT);
        context.sendBroadcast(i);
    }

}

クラス 2 は、ブロードキャストが受信されると通知を受け取ります。

public class Class2 extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals("org.some.action")) {
            System.out.println("I got Notified");
        }
    }
}

Class2 をレシーバーとしてマニフェスト ファイルに追加することを忘れないでください。

<receiver android:name=".Class2" android:enabled="true">
    <intent-filter>
      <action android:name="org.some.action"></action>
    </intent-filter>
</receiver>
于 2012-06-08T09:03:58.580 に答える