簡體   English   中英

內部廣播接收器不起作用?

[英]Inner Broadcast receiver does not work?

我創建一個內部接收器InnerReceiver

  public class MainActivity extends Activity{
  ...

       class InnerReceiver extends BroadcastReceiver {
          @Override
          public void onReceive(Context context, Intent intent) {
             Log.v("InnerReceiver", "onReceive");
          }
       }

 ...
 }

接收方稱為:

   AlarmManager mgr=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
   PendingIntent pi=PendingIntent.getBroadcast(context, 0, new Intent(context,MainActivity.InnerReceiver.class), 0);

   mgr.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                SystemClock.elapsedRealtime()+1000,
                10000,
                pi);

內部類聲明為:

但是,永遠不會調用內部接收器! 有什么問題嗎 ? 謝謝。

您需要在AndroidManifest.xml的<receiver>標簽中注冊它,或者通過調用registerReceiver()動態registerReceiver()

可能需要將其聲明為public ,而不是您需要的package-private 在此處查看有關Java訪問控制的更多信息。

您還需要廣播一些內容以便接收,例如通過調用sendBroadcast()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM