如果我的应用程序在后台,我的AsyncTask
课程运行正常,但如果我接听电话,它将停止运行。我挂断电话后,立即开始看到它的活动。它在我的应用程序和我的数据库之间进如何让这个后台进程一直运行?
答案 0 :(得分:0)
尝试使用此
PhoneStateListener phoneStateListener = new PhoneStateListener() {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
if (state == TelephonyManager.CALL_STATE_RINGING) {
// do your stuff here
} else if (state == TelephonyManager.CALL_STATE_IDLE) {
// do your stuff here
} else if (state == TelephonyManager.CALL_STATE_OFFHOOK) {
// A call is dialing, active or on hold
// do your stuff here
}
super.onCallStateChanged(state, incomingNumber);
}
};
TelephonyManager mgr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
if (mgr != null) {
mgr.listen(phoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
}
答案 1 :(得分:0)
Asynctask课程并非始终在后台运行,而应使用Services。 此外,您不必总是与数据库进行实时通信,您可以使用Content Provider。
希望这对你有所帮助。