gpt4 book ai didi

android-intent - 在运行时注册 CATEGORY_HOME 意图

转载 作者:行者123 更新时间:2023-12-03 23:32:11 26 4
gpt4 key购买 nike

我需要为意图过滤器注册(在运行时)自定义 BroadcastReceiver 可以在 list 中描述为

<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>

并在用户通过按应用程序中的某个按钮退出应用程序时取消注册接收器(或
输入密码)。

使用代码注册的接收器
receiver_ = new MyReceiver();
filter_ = new IntentFilter(Intent.ACTION_MAIN);
filter_.addCategory(Intent.CATEGORY_HOME);
filter_.addCategory(Intent.CATEGORY_DEFAULT);
registerReceiver(receiver_, filter_);

不接收意图,不调用 onReceive() 函数。

我做错了什么,有没有可能解决这个问题?
谢谢。

最佳答案

BroadcastReceiver 仅由广播 Intent 触发(即:使用 Intent 发送的 sendBroadcast() )。您描述的 Intent (ACTION=MAIN, CATEGORY=HOME) 不是广播 Intent 。这是一个用于启动 Activity 的 Intent(即:有人使用 startActivity() 调用 Intent,看起来像那样)。

在我看来,您正在尝试创建一个主屏幕替换。如果这是您想要做的,则您的 list 中需要有一个 Activity<intent-filter>。您不能动态注册/取消注册。

如果您需要启用/禁用您的 HOME-Screen 替换,什么可能有效(我还没有尝试过,所以我不能肯定它会起作用)是使用 PackageManager 启用/禁用您的 HOME-Screen 事件.在这里查看 setComponentEnabledSetting():http://developer.android.com/reference/android/content/pm/PackageManager.html

让我们知道你发现什么!

关于android-intent - 在运行时注册 CATEGORY_HOME 意图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12827253/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com