建立网络连接时有没有办法启动 android应用程序?我想在建立网络连接后启动服务,而不事先打开应用程序。即使应用程序已关闭,我也需要此服务在网络连接后始终在后台运行。
也许类似于在启动时如何启动应用程序?
任何建议都表示赞赏。
答案 0 :(得分:0)
您可以尝试监控已解释的连接更改here
您可以使用 _data.Orders.Load();
this.Orders=_data.Orders.Local;
,以便服务始终在后台运行。要使服务保持运行,您还可以考虑使用唤醒锁。但这可能会更快地耗尽电池。
答案 1 :(得分:0)
您可以添加一个可以收听网络状态变化的BroadcastReceiver并检查是否有互联网,然后启动您的应用。
在这里你是广播
public class NetworkChangeReceiver extends BroadcastReceiver {
private Context context;
@Override
public void onReceive(final Context context, final Intent intent) {
this.context = context;
if (isOnline()) {
// if the internet is working, start the main activity or any activity you want
Intent i = new Intent(context, MainActivity.class);
context.startService(i);
}
}
private boolean isOnline() {
ConnectivityManager cm = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
return cm.getActiveNetworkInfo() != null
&& cm.getActiveNetworkInfo().isConnectedOrConnecting();
}
}
将这些权限添加到清单
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
并将其添加到应用程序标记内的清单中“只需在类名称之前添加您的包名称”
<receiver
android:name="add your package name here.NetworkChangeReceiver"
android:label="NetworkChangeReceiver" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
希望它有所帮助:)