我想利用广播监测网络变化,然后利用广播启动一个Service,但是发现不把程序运行到后台的话,service不会被启动,请问是什么原因?
public class NetReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
try{
if (intent.getAction().equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)) {
NetworkInfo info = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
if (info.getState().equals(NetworkInfo.State.CONNECTED)) {
String ip = new getIP().getWIFILocalIpAdress(context);
Pattern pattern2 = Pattern.compile("\\d+");
Matcher matcher2 = pattern2.matcher(ip);
ArrayList<String> IP = new ArrayList<String>();
while (matcher2.find()) {
IP.add(matcher2.group(0));
}
SharedPreferences sp;
sp = context.getSharedPreferences("userInfo", context.MODE_PRIVATE);
String username = sp.getString("USER_NAME", "");
String password = sp.getString("PASSWORD", "");
int select = sp.getInt("SELECT", 0);
String ip_own=sp.getString(ip, "");
Pattern pattern3 = Pattern.compile("\\d+");
Matcher matcher3 = pattern3.matcher(ip_own);
ArrayList<String> IP2 = new ArrayList<String>();
while (matcher3.find()) {
IP2.add(matcher3.group(0));
}
if ((IP.get(0).equals("172") && IP.get(1).equals("31") && username.length() != 0)||( IP.get(0).equals( IP2.get(0) )&& IP.get(1).equals( IP2.get(1) ) ) ){
Intent intent2 = new Intent(context, NetService.class);
intent2.putExtra("password", password);
intent2.putExtra("select", select);
intent2.putExtra("username", username);
intent2.putExtra("ip", ip);
context.startService(intent2);
}
}
}
}catch (Exception e){
}
}
}
<service android:name=".NetService" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</service>
<receiver android:name=".NetReceiver" >
<intent-filter>
<action android:name="android.net.wifi.STATE_CHANGE" />
<action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</receiver>
参照:http://blog.csdn.net/ocean2006/article/d...