我创建了一个内部接收器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);
内部类声明为:
但是,内部接收器永远不会被调用!有什么问题吗 ? 感谢。
答案 0 :(得分:0)
您需要在AndroidManifest.xml的<receiver>
标记中注册,或通过调用registerReceiver()
动态注册。
可能需要声明public
,而不是package-private
。查看有关Java访问控制here的更多信息。
您还需要播放要接收的内容,例如致电sendBroadcast()
。