1

前回の苦戦でここで立ち往生 >> Prev. 闘争!

そこのラーナンが助けた!私はたくさんいますが、タイミングゾーンが異なるため、彼は去ったと思います。今、アクティビティにあるBroadcastReceiver()を呼び出すために使用しているサービスコードに行き詰まっています! また、filter.addAction(action); をロードする必要があるパラメーターを取得していません。アクションの代わりに??

親切にガイドしてください!

サーバー内のコード:

Toast.makeText(Server.this, hr +" , " +min, Toast.LENGTH_LONG).show();

       Intent intent = new Intent(this, andRHOME.class);
       //intent.putExtra("sendMessage","1");
       sendBroadcast(intent);

および CODE IN THE ACITIVITY (ブロードキャスト レシーバー)

 private BroadcastReceiver ReceivefrmSERVICE = new BroadcastReceiver(){

    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "IN DA BroadCASTER",
                Toast.LENGTH_LONG).show();
                sendMessage("1");
    }
   };
    IntentFilter filter = new IntentFilter();
4

1 に答える 1

1

これらの行を追加して、何らかのアクションのためにレシーバーを登録する必要があります。たとえば、次のようにグローバル変数を定義します。

public static String NOTIFCATION_BROADCAST_ACTION = "com.your_packagename.UPDATE_NOTIFICATION_INTENT";

次に、このようなアクションをactivity onCreate()メソッドに登録します。

 IntentFilter filter = new IntentFilter();
 filter.addAction(Global.NOTIFCATION_BROADCAST_ACTION);
 registerReceiver(ReceivefrmSERVICE, filter);

次に、serviceこのようにブロードキャストを送信します

    Intent broadcast = new Intent();
    broadcast.setAction(Global.NOTIFCATION_BROADCAST_ACTION);
    sendBroadcast(broadcast);

次に、broadcast Receiverフィルターでこのアクションを次のようにします

 private BroadcastReceiver ReceivefrmSERVICE = new BroadcastReceiver(){

    @Override
    public void onReceive(Context context, Intent intent) {

            if (intent.getAction().equals(Global.NOTIFCATION_BROADCAST_ACTION)) {
                //Do your stuff here :)
            }
    }
   };
于 2012-12-15T06:46:17.530 に答える