因此,在片段课程中,我有一个AsyncTask
课程,我在BroadcastReceiver
的{{1}}方法调用onPostExecute()
-
Android Manifest -
AsyncTask
片段类 -
<receiver
android:name="com.iddl.main.IncomingBBStream"
android:label="IncomingBBStream">
<action android:name="com.iddl.main.BBbroadcast" />
<intent-filter>
<action android:name="android.bluetooth.
device.action.ACL_DISCONNECTED" />
</intent-filter>
</receiver>
BroadcastReceiver类 -
@Override
protected void onPostExecute(Void result)
{
Intent intent = new Intent();
intent.setAction("com.iddl.main.BBbroadcast");
intent.putExtra("uuid", uuid);
getActivity().sendBroadcast(intent);
}
它至少应该打印日志消息,但它不会这样做。
注意:
我必须添加public class IncomingBBStream extends BroadcastReceiver {
public void onReceive(Context context, Intent intent)
{
Log.i(TAG, "onReceive BroadcastReceiver------");
}
才能使其正常运行,但这没有任何意义,因为我已经通过了与清单的接收者名称{{1}匹配的操作intent.setClass(getActivity(), IncomingBBStream.class);
}}。所以它知道要调用哪个类。
答案 0 :(得分:0)
你可能想这样做:
<receiver
android:name="com.iddl.main.IncomingBBStream"
android:label="IncomingBBStream">
<intent-filter>
<action android:name="com.iddl.main.BBbroadcast"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
<intent-filter>
<action android:name="android.bluetooth.
device.action.ACL_DISCONNECTED"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</receiver>
每个intent过滤器在其自己的标记上分开,并始终包含默认类别。