我在後臺運行我的應用程序以獲取每1小時的位置。我也把代碼讀取手機狀態如下:通話結束後的應用程序開始
public class IncomingCallInterceptor extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
String msg = "Phone state changed to " + state;
if (TelephonyManager.EXTRA_STATE_RINGING.equals(state)) {
String incomingNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
msg += ". Incoming number is " + incomingNumber;
// TODO This would be a good place to "Do something when the phone rings" ;-)
}
if (TelephonyManager.EXTRA_STATE_IDLE.equals(state)){
Intent i = context.getPackageManager()
.getLaunchIntentForPackage(
context.getPackageName());
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_SINGLE_TOP);
context.startActivity(i);
}
}
}
它的工作正常,當我的應用程序正在運行和任何電話來。在通話結束後,它回到我的申請。但主要問題是當我的應用程序沒有運行,並且任何電話來電和通話結束後,我的應用程序自動啓動。我認爲理由是我在後臺運行我的應用程序,這就是爲什麼它自動啓動。但它必須在後臺運行。那麼當應用程序沒有正常運行時,在通話結束後,停止我的應用程序的解決方案是什麼?
解釋爲什麼你失望投我的問題... – Riser
你不想接收broadcasat當應用程序沒有運行? – stinepike
我的應用程序在後臺運行已經.. – Riser