gpt4 book ai didi

java - 如何验证来自不同应用程序的广播接收器的 onReceive 方法是否确实被调用?

转载 作者:行者123 更新时间:2023-12-02 09:11:24 28 4
gpt4 key购买 nike

我是 Android 初学者,遇到以下问题。我正在尝试从(不同的)应用程序 B 调用应用程序 A 注册的广播接收器。在应用程序 A 的广播接收器中,我实现了以下 onReceive() 方法,用于测试目的:

@Override
public void onReceive(Context context, Intent intent) {
//TODO: React to the Intent received.
System.out.println("onReceive has been called");
}

Boradcast 接收器在应用程序 B 中使用以下代码调用:

Intent explicitIntent = new Intent();
explicitIntent.setComponent(new ComponentName("<A's package name>", "<fully qualified BR class name>"));
sendBroadcast(explicitIntent);

运行应用 B 时,我希望看到 Android Studio 控制台上出现 onReceive has been called 字符串,但事实并非如此。是因为该方法实际上没有被调用(出于某种原因),还是因为期望应用程序 B 控制台可以可视化来自应用程序 A 的 System.out.println 消息是天真的?在第二种情况下,是否有另一种简单的方法可以在 Android Studio 中测试 App A 的 onReceive() 方法是否实际被调用?

最佳答案

我没有您的 API 版本可供测试,但是如果您以不同的方式注册接收器,您的设置将会起作用:

<receiver android:name=".MyBroadcastReceiver"  android:exported="true"/>

关于java - 如何验证来自不同应用程序的广播接收器的 onReceive 方法是否确实被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59399270/

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