我的Android应用程序基于网络连接,即WIFI /移动网络。当我的手机连接到互联网时它工作正常,但当互联网连接断开时,它停止工作(肥胖),并且在我的手机再次连接到互联网后它仍然停止工作。
我希望(重新)在(重新)建立互联网连接时自动启动我的应用程序。
答案 0 :(得分:2)
您可以使用广播接收器检查网络状态。只要网络可用,您就可以启动应用程序。
首先,创建后台服务并在设备启动时启动服务。现在,在此服务中,注册广播接收器并监视网络状态。如果网络可用,您可以启动您的应用程序;如果不可用,你可以关闭它。
请参阅下面的代码了解广播接收器。
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();
}
}
};
}
答案 1 :(得分:0)
我认为您必须检查继续网络连接,这意味着您需要在后台任务中检查互联网连接。 Android服务是更好的选择,创建一个服务并在你的应用程序启动时启动它,内部只做一个代码,用于检查Internet连接,当它丢失,做一些任务,当它发现你可以做你想做的任何事情。因此,我建议您使用服务并完成任务。
以下是一些可以参考的链接。
http://www.tutorialspoint.com/android/android_services.htm
http://www.vogella.com/tutorials/AndroidServices/article.html
答案 2 :(得分:0)
我认为您应该在后台创建一个分布主题或服务,以便在一段时间后检查网络连接。在线程或服务中使用以下代码,无论你想要创建什么。
NetworkInfo i = conMgr.getActiveNetworkInfo();
if (i == null)
return false;
if (!i.isConnected())
return false;
if (!i.isAvailable())
return false;
return true;