是什么决定Android启动时应用程序自动启动?

时间:2013-01-23 15:54:20

标签: android android-intent broadcastreceiver android-service

在我的应用程序中,有一项功能允许用户拨打特定号码并在前面启动活动。我有以下接收器,以及在AndroidManifest.xml中注册的 only 接收器。

<receiver android:name="com.example.myapp.OutgoingCallListener" android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.NEW_OUTGOING_CALL" />
    </intent-filter>
</receiver>

请注意,没有BOOT_COMPLETED intentservice

现在这是我无法弄清楚的事情。当我重新启动设备时,请检查Running Apps,我的应用程序未列在那里。但是,如果我拨打特定号码,我的应用程序就会启动,活动就会被带到前面。

我的问题是:如果该应用不是服务,并且没有在启动时启动,它怎么能收到Android的意图?也就是说,在我的情况下,我的应用程序怎么可能在NEW_OUTGOING_CALL没有开始的时候听取它?

1 个答案:

答案 0 :(得分:3)

在清单中注册的BroadcastReceiver始终能够响应匹配的广播。如果您的流程因任何原因未运行,Android将为您启动流程。