android从广播接收器启动服务

时间:2013-10-23 13:45:01

标签: android service broadcastreceiver

当应用程序被杀死并且服务保持活动时,如何从广播接收器启动服务。 我的BroadcastReceiver:

public class NetworkChangeReceiver extends BroadcastReceiver{

@Override
public void onReceive(Context context, Intent intent) {
    final ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    final android.net.NetworkInfo wifi = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
    final android.net.NetworkInfo mobile = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
    Intent intent1 = new Intent(context, ImageUploader.class);
    if (wifi != null && wifi.isAvailable()) {
        context.startService(intent1);
        Toast.makeText(context, "start service execute", Toast.LENGTH_SHORT).show();
    } else if(mobile != null && mobile.isAvailable()) {
        context.startService(intent1);
    }
}

}

申请开始时,一切正常。但当我杀了app时,我只看到吐司,服务正在睡觉。请帮帮我!

1 个答案:

答案 0 :(得分:2)

来自Here

中“SirKnigget”的回答

可能会改变

  

startService(...)

  

startForeground(...)

还要小心退出应用程序

  

System.exit(0)

服务将停止。所以使用

  

完成()

退出应用程序。

您可以在http://developer.android.com/reference/android/app/Service.html

中找到更多信息

希望这有助于解决您的问题。