Android intent.setAction()和intent.getAction()在BroadcastReceiver中不工作
我使用BroadCaastReceiver允许用户执行脱机事件。问题是,如果我在点击BeentherView几秒钟后尝试打开wifi,它就永远不会进入Android intent.setAction()和intent.getAction()在BroadcastReceiver中不工作,android,android-intent,broadcastreceiver,wifi,Android,Android Intent,Broadcastreceiver,Wifi,我使用BroadCaastReceiver允许用户执行脱机事件。问题是,如果我在点击BeentherView几秒钟后尝试打开wifi,它就永远不会进入intent.getAction().equals(“beenthereclicked”)。但是它确实进入if(wifi.isAvailable()| mobile.isAvailable())每当我打开wifi时。我无法理解为什么intent.setAction()和intent.getAction()不工作。我可以在日志中看到wificonne
intent.getAction().equals(“beenthereclicked”)
。但是它确实进入if(wifi.isAvailable()| mobile.isAvailable())
每当我打开wifi时。我无法理解为什么intent.setAction()
和intent.getAction()
不工作。我可以在日志中看到wificonnected
,但在日志中看不到beenthereclicated
我在onReceive-Log.e(“NetworkChangeReceiver”,“intent”+intent.getAction())中写了这篇文章代码>。。那我就intentandroid.net.conn.CONNECTIVITY\u在日志中更改
beenThereView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent();
Bundle extras = new Bundle();
extras.putString("Is_been_there", video.getIs_been_there());
extras.putString("videoid", video.getId());
intent.putExtras(extras);
intent.setAction("beenthereclicked");
mContext.sendBroadcast(intent);
}
}
NetworkChangeReceiver.java
public class NetworkChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, final Intent intent) {
if (wifi.isConnected() || mobile.isAvailable())
{
Log.e("NetworkChangeReceiver", "wificonnected");
Log.e("NetworkChangeReceiver","intent"+intent.getAction());//returns android.net.conn.CONNECTIVITY_CHANGE
if (intent.getAction().equals("beenthereclicked")) {
Log.e("NetworkChangeReceiver", "beenthereclicked");
Bundle extras = intent.getExtras();
String isbeenthere = extras.getString("Is_been_there");
String videoid = extras.getString("videoid");
if (isbeenthere.equals("false"))
{
BeenThereAPI.unlike(context, videoid, new APIResponseListener() {
@Override
public void onResponse(Object response) {
}
@Override
public void onError(VolleyError error) {
}
});
}
else
{
BeenThereAPI.like(context, videoid, new APIResponseListener()
{
@Override
public void onResponse(Object response)
{
}
@Override
public void onError(VolleyError error)
{
}
});
}
}
}
雄激素单
<receiver android:name="xyz.NetworkChangeReceiver" android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE"></action>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
<action android:name="android.net.wifi.WIFI_STATE_CHANGED"/>
<action android:name="beenthereclicked"></action>
<action android:name="mustgoclicked"></action>
<action android:name="commentposted"></action>
</intent-filter>
</receiver>
我在onReceive-Log.e(“networkchangeceiver”,“intent”+intent.getAction())中写了这篇文章代码>。。那我就intent android.net.conn.CONNECTIVITY\u CHANGE
问题是,如果我在点击postcomment几秒钟后尝试打开wifi,它永远不会进入intent.getAction().equals(“postcomment”),因为每当我打开wifi时,intent操作都会更改为“android.net.conn.CONNECTIVITY\u CHANGE”。。。