有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java本地广播管理器使用主活动未接收到的警报

我已经实现了一个报警管理器,它工作得很好,每15分钟就会触发一次。现在我想使用闹钟每隔15分钟调用一个MainActivity方法。因此,我使用本地广播公司向MainActivity(知道这是我手机上当前运行的活动)发送启动该方法的命令。但问题是,MainActivity没有通过onReceive方法接收数据

警报

@Override
public void onReceive(Context context, Intent intent) {
    cont = context;
    PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
    PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "");
    wl.acquire();


    String url = intent.getExtras().getString("url");
    Log.w(TAG, "Service " + url);

    new GetJSON_val(){
        @Override
        protected String[] doInBackground(String... url) {
            Some Code...

        @Override
        protected void onPostExecute(String[] result) {
            Some Code...

            // I send the broadcast to main Activity
            Log.e("sender", "Broadcasting message");
            Intent intent = new Intent("custom-event-name");

            intent.putExtra("message", "This is my message!");

            LocalBroadcastManager.getInstance(cont).sendBroadcast(intent);

                }
            }
        }
    }.execute(url);


    // End of alarm code

    wl.release();
}

主要活动

  @Override
  public void onCreate(Bundle savedInstanceState) {
  ...
  LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver,
            new IntentFilter("custom-event-name"));
   ...
}
   private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        // Get extra data included in the Intent
        String message = intent.getStringExtra("message");
        Log.e("receiver", "Got message: " + message);

    }
};

本地广播是在报警类中用postExecute方法创建的


共 (0) 个答案