nin*_*nse 20 android broadcast intentfilter broadcastreceiver
我试图抓住包替换广播为我的应用程序和我的应用程序,但由于某些原因在我的收件人我是广播的每个更新的应用程序.我以为你只需要将清单文件中的intent过滤器设置到你的应用程序,但也许我错了?
这是我的代码(清单):
<receiver android:name=".UpdateReciever">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<data android:scheme="package" android:path="com.my.app" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
Reciever:
public class AppUpdateReciever extends BroadcastReceiver {
@Override
public void onReceive(Context con, Intent intent) {
//code..
}
}
Run Code Online (Sandbox Code Playgroud)
Ten*_*r04 35
将其添加到onReceive方法:
if (intent.getDataString().contains("com.my.app")){
...
}
Run Code Online (Sandbox Code Playgroud)
编辑:
请注意,注册ACTION_PACKAGE_REPLACED会导致您的应用每次更新任何应用程序时启动,如果它尚未打开.我不知道如何在API 12之前避免这种情况,但是在API 12中您可以注册,ACTION_MY_PACKAGE_REPLACED这样您就不必过滤意图,并且您的应用程序将不会被其他正在更新的应用程序不必要地启动.
| 归档时间: |
|
| 查看次数: |
10254 次 |
| 最近记录: |