gpt4 book ai didi

android - BroadcastReceiver 所需的帮助

转载 作者:行者123 更新时间:2023-11-29 00:44:31 27 4
gpt4 key购买 nike

基本上,我的问题是我需要将数据从我的服务(以 Intent 开始)发送到我的主要 Activity 。 (这是我第一次尝试使用 BroadcastReceiver)

我有两个应用程序,com.example.myapp(包含主要 Activity )和 com.example.myapp.licence(包含后台服务)

我目前的情况如下:

com.example.myapp > MainActivity:

// Start background service
Intent intent = new Intent();
intent.setClassName("com.example.myapp.licence", "com.example.myapp.licence.LicenceCheck");
startService(intent);

// Setup BroadcastReceiver
private BroadcastReceiver MyBroadcastReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
String status = extras.getString("status");
}
};

// Start reciever
IntentFilter filter = new IntentFilter("STATUS_RETURN");
registerReceiver(MyBroadcastReceiver, filter);

com.example.myapp.licence> 许可证检查:

Intent intentToActivity = new Intent("STATUS_RETURN");
intent.putExtra("status", "verified");
sendBroadcast(intentToActivity);

任何人都可以建议我需要更改什么才能让这个 BroadcastReceiver 工作吗?

编辑:编辑以更正拼写错误..问题仍然存在

编辑 2:现在看来正在使用 BroadcastReciever,但以下行有问题(因为它强制关闭它):

String status = extras.getString("status");

编辑 3:通过用以下 IF 语句围绕该行解决了上述问题:

if (extras != null)

但是“extras”似乎总是空的,有人知道为什么吗?

最佳答案

我猜不匹配的“STATUS_REUTRN”和“STATUS_RETURN”与它有关吗?

更新

您似乎对 Intent resolution 有疑问(向下滚动屏幕)。 Intent 可以是以下之一:

  • 明确的 Intent - 必须通过 setClass() 定义目标类。

  • 隐式 Intent - 必须包含足够的信息才能解析:类型、操作、类别。

因此,如果可能,请将此添加到您的广播 Intent 中:

intentToActivity.setClassx(this, com.example.myapp.MainActivity.class);

关于android - BroadcastReceiver 所需的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7195125/

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