[英]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.