我从android工作室开始,我试着让应用程序在启动之前检查连接性,为此我创建了一个启动屏幕,但我真的找不到方法来计算检查连接的时间,我的要求是,启动屏幕只能在我检查连接时保持可见。这就是我的onCreate方法中的内容:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
int myTimer = 4000;
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent i = new Intent(Splash.this, DashBoard.class);
boolean result = AppManager.CheckConnectionStatus(getApplicationContext());
if(result == true) {
startActivity(i);
}
else{
//Show a Message informing there is not internet connection
}
finish();
}
}, myTimer);
setContentView(R.layout.activity_splash);
}如你所见,我等了4000毫秒,但这不是我的主意.如果有人知道我该如何面对这一切,我将非常感激。
发布于 2015-04-20 12:02:50
据我所知,您希望检查网络可用性,如果可用,请启动MainActivity。您可以使用此函数检查网络可用性:
public boolean isInternetAvailable(Context context)
{
NetworkInfo info = (NetworkInfo) ((ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
if (info == null){
return false;
}
else{
return true;
}
}然后在您的SplashScreen活动中添加以下代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
Intent i = new Intent(Splash.this, DashBoard.class);
if(isInternetAvailable(Splash.this)){
startActivity(i);
finish();
}
else{
Toast toast = Toast.makeText(Splash.this,
"Please check your internet options...", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
finish();
}
}请不要忘记将此权限添加到清单文件中:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />我希望我能正确理解你。祝好运。
发布于 2015-04-20 12:03:22
在这种情况下,您可以使用AsyncTask。下面是一些简单的代码,让您开始工作:
public class CheckConnectionAsyncTask extends AsyncTask<Void, Void, Boolean> {
@Override
protected void onPreExecute() {
super.onPreExecute();
// Display some waiting progress bar or a splash image here
}
@Override
protected Boolean doInBackground(Void... params) {
return AppManager.CheckConnectionStatus(getApplicationContext());
}
@Override
protected void onPostExecute(Boolean result) {
super.onPostExecute(aBoolean);
if (result) {
// start next activity
} else {
// error message that you're not connected.
}
}
}希望能帮上忙!
https://stackoverflow.com/questions/29747030
复制相似问题