如何在发现网络时自动将我的android应用程序连接到Internet
我的android应用程序基于网络连接,即WIFI/移动网络。当我的手机连接到互联网时,它工作正常,但当互联网连接断开时,它停止工作(Obeely),并且在我的手机再次连接到互联网后,它仍然停止工作如何在发现网络时自动将我的android应用程序连接到Internet,android,Android,我的android应用程序基于网络连接,即WIFI/移动网络。当我的手机连接到互联网时,它工作正常,但当互联网连接断开时,它停止工作(Obeely),并且在我的手机再次连接到互联网后,它仍然停止工作 我希望在(重新)建立internet连接时自动(重新)启动我的应用程序。我认为您必须继续检查网络连接,这意味着您需要在后台任务中检查internet连接。安卓服务是更好的选择,创建一个服务并在应用程序启动时启动,在其中只需执行一个代码,用于检查互联网连接,当它丢失时,执行一些任务,当它发现你可以做任
我希望在(重新)建立internet连接时自动(重新)启动我的应用程序。我认为您必须继续检查网络连接,这意味着您需要在后台任务中检查internet连接。安卓服务是更好的选择,创建一个服务并在应用程序启动时启动,在其中只需执行一个代码,用于检查互联网连接,当它丢失时,执行一些任务,当它发现你可以做任何你想做的事时。因此,我建议您使用服务并完成任务 这里有一些链接可供参考
我认为您应该在后台创建一个扩展线程或服务,以便在一段时间后检查网络连接。在线程或服务中使用以下代码,无论您想创建什么
NetworkInfo i = conMgr.getActiveNetworkInfo();
if (i == null)
return false;
if (!i.isConnected())
return false;
if (!i.isAvailable())
return false;
return true;
您可以使用广播接收器检查网络状态。只要网络可用,就可以启动应用程序 首先,创建一个后台服务,并在设备启动时启动服务。现在,在这个服务中,注册一个广播接收器并监视网络状态。如果网络可用,您可以启动应用程序;如果不可用,您可以将其关闭 请参考下面的广播接收器代码
public class BroadCastSampleActivity extends Activity
{
/** Called when the activity is first created. */
@Override
protected void onCreate(Bundle savedInstanceState)
{
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.registerReceiver(this.mConnReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
}
private BroadcastReceiver mConnReceiver = new BroadcastReceiver()
{
public void onReceive(Context context, Intent intent)
{
boolean noConnectivity = intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
String reason = intent.getStringExtra(ConnectivityManager.EXTRA_REASON);
boolean isFailover = intent.getBooleanExtra(ConnectivityManager.EXTRA_IS_FAILOVER, false);
NetworkInfo currentNetworkInfo = (NetworkInfo) intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
NetworkInfo otherNetworkInfo = (NetworkInfo) intent.getParcelableExtra(ConnectivityManager.EXTRA_OTHER_NETWORK_INFO);
if(currentNetworkInfo.isConnected())
{
Toast.makeText(getApplicationContext(), "Connected", Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(getApplicationContext(), "Not Connected", Toast.LENGTH_LONG).show();
}
}
};
}
你确定你会一直上网吗。。。?这难道不会使你的应用程序资源密集型吗…?同样使用广播接收器