gpt4 book ai didi

android - 广播接收器未被调用

转载 作者:行者123 更新时间:2023-11-29 21:39:23 25 4
gpt4 key购买 nike

在我的 fragment 中,我有一个按钮,当按下按钮时,我通过以下方式广播自定义 Intent :

package com.my.store.fragments.shopping;

public class ShoppingFragment extends Fragment{
...
@Override
public void onStart(){
super.onStart()

myButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
broadcastMyIntent(v);
}
});
}

public void broadcastMyIntent(View view){
Intent intent = new Intent();
intent.setAction("com.my.store.fragments.shopping.CUSTOM_INTENT");
getActivity().sendBroadcast(intent);
}
}

然后,我定义了一个广播接收器:

package com.my.store.utils;

public class MyReceiver extends BroadcastReceiver{

@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Receive my intent", Toast.LENGTH_LONG).show();
}
}

我在 AndroidManifest.xml 中注册接收器:

<application
...>
<activity ...>
...
</activity>

<!--this is the receiver which doesn't work-->
<receiver android:name="com.my.store.utils.MyReceiver">
<action android:name="com.my.store.fragments.shopping.CUSTOM_INTENT"/>
</receiver>

<!--I have another receiver here, it is working fine-->
<receiver android:name="com.my.store.utils.AnotherReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
</application>

我运行我的应用程序,当我按下按钮时,我的接收器没有被调用。为什么?

最佳答案

你忘了包围你的 <action>带有 <intent-filter> 的元素容器。

关于android - 广播接收器未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17528471/

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