是线程安全的onReceive()
方法BroadcastReceiver
还是我需要自己实现同步?
如果我有任何在该onReceive()
方法中使用的类级别变量,并且该onReceive()
方法被很快调用多次,是否会引起问题?
public class MyBroadCastReceiver extends BroadcastReceiver {
boolean isFirstTrigger = true;
@Override
public void onReceive(Context context, Intent arg1) {
if(isFirstTrigger)
{
//Do something time consuming
isFirstTrigger = false;
}
}
Run Code Online (Sandbox Code Playgroud)
BroadcastReceiver线程的onReceive()方法是安全的还是我需要自己实现同步?
它只会在主应用程序线程上调用.因此,对于在主应用程序线程上运行的任何其他内容,它是线程安全的.
如果我在onReceive()方法中使用了任何类级别变量,并且很快多次调用onReceive()方法,它会导致问题吗?
如果BroadcastReceiver
在清单中注册,则为每个广播创建一个新实例.这就是您通常不会看到数据成员的原因BroadcastReceiver
.
归档时间: |
|
查看次数: |
3537 次 |
最近记录: |