我从android studio开始,我试图让应用程序在启动之前检查连接性,为此我正在创建一个启动屏幕,但我真的找不到计算检查连接时间的方法,我的要求是启动屏幕仅在我检查连接时保持可见。 这是我的 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 毫秒,但这不是我的想法...... 如果有人知道我该如何面对这个问题,我将不胜感激。
最佳答案
据我了解,您想要检查网络可用性,然后如果可用则启动 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 Activity 中:
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();
}
}
不要忘记将此权限添加到您的 list 文件中:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
我希望我能正确理解你。祝你好运。
关于java - Android 入门项目结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29747030/