我遇到了以下问题。我希望我的应用程序在检测到没有网络连接时退出。我的应用程序以启动屏幕启动。如果设备上没有网络连接,是否可以显示启动屏幕,然后显示 toast。然后终止应用程序
我的闪屏代码中有类似这样的内容:
onCreate() 内部
ConnectivityManager connectivitymanager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkinfo = connectivitymanager.getActiveNetworkInfo();
connected = networkinfo != null && networkinfo.isAvailable()
&& networkinfo.isConnected();
Log.v("Network state : ", connected + "");
Thread splashThread = new Thread() {
@Override
public void run() {
try {
int waited = 0;
while (waited < 5000) {
sleep(100);
waited += 100;
}
} catch (InterruptedException e) {
// do nothing
} finally {
Looper.prepare();
if (connected == false) {
Toast.makeText(
splashscreenActivity.this,
"No Network Connection is available on device.",
Toast.LENGTH_LONG).show();
finish();
System.exit(0);
} else {
finish();
startActivity(new Intent(splashscreenActivity.this,
mainActivity.class));
}
Looper.loop();
}
}
};
splashThread.start();
1.请查看我的代码并指导我如何显示该 toast 。 2.或者建议我其他更好的方法来做到这一点
谢谢
编辑:
谢谢大家的回复:
我选择了 Dharmendra 通过闪屏 Activity 显示 toast 的方式:
有效的代码是:
if (connected == false) {
splashscreenActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(splashscreenActivity.this,
"No Internet Connection.", 3000).show();
}
});
finish();
} else {
//migrate to main activity from splashscreen
}
最佳答案
你可以这样做,使用Handler。将以下代码放在else条件中
Handler mHandler = new Handler(Looper.getMainLooper());
mHandler.post(new Runnable() {
public void run() {
Toast.makeText(Splash.this, "Network error", Toast.LENGTH_LONG).show();
finish();
}
});
或者,我在我的应用程序中执行此操作:
if(status.equals("CONNECTED"))
{
startActivity(new Intent(Splash.this,Activity.class));
finish();
}else
{
startActivity(new Intent(Splash.this,NetworkError.class));
finish();
}
其中 NetworkError 类显示另一个布局,其图像如“无网络、、、、”(或任何您想要显示而不是启动的内容...)
关于android - 在 Android 启动画面上显示 Toast,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7596574/