Android AsyncTask被电话阻止?

时间:2015-05-19 17:32:24

标签: android

如果我的应用程序在后台,我的AsyncTask课程运行正常,但如果我接听电话,它将停止运行。我挂断电话后,立即开始看到它的活动。它在我的应用程序和我的数据库之间进如何让这个后台进程一直运行?

2 个答案:

答案 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

希望这对你有所帮助。