bma*_*ajz 5 android android-manifest android-intent
我希望通过"使用完整操作..."对话框将我的应用程序注册为电话呼叫处理程序.我发现如果我在清单中使用以下语法,它会起作用:
<activity android:name="my.class">
<intent-filter>
<action android:name="android.intent.action.CALL_PRIVILEGED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="tel" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
但如果我将其注册为广播接收器,我的应用程序不会显示在"使用...完成操作"对话框中.
<receiver android:name="my.class">
<intent-filter>
<action android:name="android.intent.action.CALL_PRIVILEGED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="tel" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
一旦Intent与过滤器匹配,除了要调用的类的类型之外,两者之间有什么区别?
区别很明显:第一个将尝试启动Activity,而第二个将执行a BroadcastReceiver.使用什么取决于你想要达到的目标; 使用BroadcastReceiver时,你想赶上一些事件,但不希望任何显示给用户.
| 归档时间: |
|
| 查看次数: |
1191 次 |
| 最近记录: |