onReceive方法中的線程是否有資格進行垃圾回收,然後才能完成?onReceive異步操作和垃圾回收
@Override
public void onReceive(final Context context, Intent intent) {
final int alarmId = intent.getExtras().getInt(EXTRA_ALARM_ID);
Log.i(TAG, "/onReceive with an alarmVo.id of " + alarmId);
// RUN MY THREAD
new Thread(new Runnable() {
@Override
public void run() {
AlarmUtil.setNextAlarm(context, alarmId);
}
}).start();
}
從我從這裏瞭解: http://developer.android.com/reference/android/content/BroadcastReceiver.html它是,但我不是很肯定。
「任何需要異步操作不可用,因爲你需要從處理異步操作的功能恢復,但在這一點上的BroadcastReceiver不再有效,因此該系統是免費殺其過程在異步操作完成之前「。
如果它被垃圾收集,那麼我該如何解決這個問題?我應該怎麼做?
您可以進一步解釋此處的含義:「任何需要異步操作的地方都不可用,因爲您需要從函數返回以處理異步操作,但此時BroadcastReceiver不再處於活動狀態,因此係統可以在異步操作完成之前自由地終止它的進程。「 – user123321
我編輯了我的答案,現在已添加更多上下文。希望能幫助到你。 –
是的。謝謝你,先生!你是一個紳士和學者。 – user123321