此刻,我从一个活动(在其PhoneStateListener
方法中)初始化了一个侦听器(扩展了onCreate()
)。
private static boolean listening = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
//...
if (!listening) {
MyPhoneStateListener phoneListener = new MyPhoneStateListener(getApplicationContext());
TelephonyManager telephonyManager = (TelephonyManager) getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
telephonyManager.listen(phoneListener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
listening = true;
}
但是,我意识到我还应该在重启设备时初始化该侦听器,所以我也应该从启动完成的BroadcastReceiver
开始。
然后如何避免让该侦听器的两个实例运行? (我也想知道,如果该活动未运行(后台应用程序?切换的活动?),我的监听器将始终起作用吗?)
答案 0 :(得分:0)
您可以创建一个Class ListenerUtil,为其中的侦听器添加一个静态变量,然后您可以在Activity和BroadcastReceiver中访问该静态变量。最后,如果您的活动没有被破坏,则侦听器将始终可以工作。