如何验证来自不同 App 的 Broadcast Receiver 的 onReceive 方法是否实际被调用?
How can I verify that the onReceive method of a Broadcast Receiver from a different App is actually called?
我是 Android 的初学者,我遇到了以下问题。
我正在尝试从(不同的)应用程序 B 调用应用程序 A 注册的广播接收器。
在 App A 的广播接收器中,我实现了以下 onReceive()
方法,用于测试目的:
@Override
public void onReceive(Context context, Intent intent) {
//TODO: React to the Intent received.
System.out.println("onReceive has been called");
}
在应用程序 B 中使用以下代码调用 Boradcast 接收器:
Intent explicitIntent = new Intent();
explicitIntent.setComponent(new ComponentName("<A's package name>", "<fully qualified BR class name>"));
sendBroadcast(explicitIntent);
当 运行 应用程序 B 时,我希望看到 onReceive has been called
字符串出现在 Android Studio 控制台上,但它没有。
是因为该方法实际上没有被调用(出于某种原因),还是因为期望 App B 控制台可以可视化来自 App A 的 System.out.println
消息是天真的?
在第二种情况下,是否有另一种简单的方法可以在 Android Studio 中测试实际调用 App A 的 onReceive()
方法?
我没有你的 API ver 来测试, 但如果你注册你的接收器有点不同,你的设置将工作:
<receiver android:name=".MyBroadcastReceiver" android:exported="true"/>
我是 Android 的初学者,我遇到了以下问题。
我正在尝试从(不同的)应用程序 B 调用应用程序 A 注册的广播接收器。
在 App A 的广播接收器中,我实现了以下 onReceive()
方法,用于测试目的:
@Override
public void onReceive(Context context, Intent intent) {
//TODO: React to the Intent received.
System.out.println("onReceive has been called");
}
在应用程序 B 中使用以下代码调用 Boradcast 接收器:
Intent explicitIntent = new Intent();
explicitIntent.setComponent(new ComponentName("<A's package name>", "<fully qualified BR class name>"));
sendBroadcast(explicitIntent);
当 运行 应用程序 B 时,我希望看到 onReceive has been called
字符串出现在 Android Studio 控制台上,但它没有。
是因为该方法实际上没有被调用(出于某种原因),还是因为期望 App B 控制台可以可视化来自 App A 的 System.out.println
消息是天真的?
在第二种情况下,是否有另一种简单的方法可以在 Android Studio 中测试实际调用 App A 的 onReceive()
方法?
我没有你的 API ver 来测试, 但如果你注册你的接收器有点不同,你的设置将工作:
<receiver android:name=".MyBroadcastReceiver" android:exported="true"/>