我在我的活动中使用的BroadcastReceiver
存在问题。我实际上是这样做的:
在onCreate()
:
receiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals("finish")) {
// some code
}
}
};
registerReceiver(receiver, intentFilter);
并在onResume()
和onPause()
我这样做:
@Override
public void onResume(){
super.onResume();
MyCollectionList.this.registerReceiver(receiver, intentFilter);
}
@Override
public void onPause(){
super.onPause();
MyCollectionList.this.unregisterReceiver(receiver);
}
其中,intentFilter是:
IntentFilter intentFilter = new IntentFilter("finish");
当我在需要添加此广播接收器的6个活动中执行此操作时,我的应用程序开始滞后并且比之前变慢。
还有其他更好的方法来观察意图过滤器,而不会在我的情况下减慢app /或最佳方式。
提前致谢!
答案 0 :(得分:2)
不是使用Activity的上下文注册接收者,而是在第一个活动中将其注册到应用程序的上下文中,如下所示:
getApplication()。registerReceiver(receiver,intentFilter);
这样即使您的活动进入“暂停”状态,您的接收器也会保持活动状态,因为您的应用程序将继续在后台运行。
希望这有帮助。
答案 1 :(得分:1)