我在服务中注册了一个动态广播接收器,并且我的服务在一段时间(某些条件)循环中执行了一些繁重的 sdcard 读/写操作。
当我的广播接收器未收到从我的另一个应用程序(在其他进程中)发送广播时。
当它不执行 while 循环时,也会收到相同的广播。
我还尝试使用 Thread.Sleep(100) 结束循环,只是为了给广播接收器一些时间来执行,但它不起作用。
任何有关这方面的帮助都会对我有很大帮助。
-谢谢和问候,曼朱
Code below for registering BxRx:
this.registerReceiver(myReceiver, new IntentFilter(ACTIVITY_NAME));
code below for sending broadcast:
Intent intnt = new Intent(ACTIVITY_NAME);
intnt.putExtra("STOP_ALL_TESTING", true);
Log.d(TAG,"Sending BX STOP_ALL_TESTING");
myActivity.this.sendBroadcast(intnt);
code below for while loop:
while(somecondition){
:
:
:
Thred.sleep(100);
}
public void onReceive(Context context, Intent intent) {
Log.d(TAG,"Received intent: "+intent.getAction());
boolean flag = intent.getBooleanExtra("STOP_ALL_TESTING", false);
Log.d(TAG,"Flag set to: "+flag);
if((boolean)intent.getBooleanExtra("STOP_ALL_TESTING",false)){
Log.d(TAG,"Broadcast received to STOP_ALL_TESTING");
Log.d(TAG,"Bx Rx, setting flag to stop testing as requested by user");
synchronized(this){
bStopTesting=true;
}
}
}