1

我在以前的斗争中被困在这里 >>上一页。斗争!

Raanan 有帮助!我很多,但后来我认为他因为时区不同而消失了,现在我被我用来调用活动中的 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);

和活动中的代码(广播接收器)

 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 回答