2016-11-16 88 views
0

我设置了我的闪屏活动以检查活动的Internet连接。如果没有互联网连接,我已经设置了一个提示对话框,以便随着按钮打开互联网设置。现在我面对的问题是,即使启用了互联网连接并打开bac,它仍然陷入了启动画面。应用程序不会打开新的活动。即使在启用互联网连接后,应用程序仍然停留在启动画面

SplashActivity.java

public class SplashActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_splash); 

    boolean mobileNwInfo; 
    ConnectivityManager conxMgr = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); 
    try {  
      mobileNwInfo = conxMgr.getActiveNetworkInfo().isConnected(); 
     } 
    catch (NullPointerException e) {  
      mobileNwInfo = false; 
     } 
    if (!mobileNwInfo) { 
     new SweetAlertDialog(this, SweetAlertDialog.WARNING_TYPE) 
       .setTitleText("Info ") 
       .setCustomImage(R.mipmap.alert) 
       .setContentText("No internet connection!") 
       .setConfirmText("OPEN SETTINGS") 
       .setConfirmClickListener(new SweetAlertDialog.OnSweetClickListener() { 
        @Override 
        public void onClick(SweetAlertDialog sDialog) { 
         sDialog.dismissWithAnimation(); 
         startActivityForResult(new Intent(android.provider.Settings.ACTION_SETTINGS), 0); 
        } 
       }).show(); 
    } 
    else 
    { 
     Splash(); 
    } 
} 

public void Splash() 
{ 
    int SPLASH_TIME_OUT = 5000; 
    new Handler().postDelayed(new Runnable() { 

     @Override 
     public void run() { 

      Intent i = new Intent(SplashActivity.this, Main2Activity.class); 
      startActivity(i); 
      finish(); 
     } 
    }, SPLASH_TIME_OUT); 
} 
} 
+1

您是否检查了onResume()中的Internet连接? –

回答

2

您必须检查互联网条件onResume()。请尝试以下代码:

public class SplashActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_splash); 
    } 

    @Override 
    public void onResume() { 
     super.onResume(); 
     if (!checkInternet()) { 
      new SweetAlertDialog(this, SweetAlertDialog.WARNING_TYPE) 
        .setTitleText("Info ") 
        .setCustomImage(R.mipmap.alert) 
        .setContentText("No internet connection!") 
        .setConfirmText("OPEN SETTINGS") 
        .setConfirmClickListener(new SweetAlertDialog.OnSweetClickListener() { 
         @Override 
         public void onClick(SweetAlertDialog sDialog) { 
          sDialog.dismissWithAnimation(); 
          startActivityForResult(new Intent(android.provider.Settings.ACTION_SETTINGS), 0); 
         } 
        }) 
        .show(); 
     } else { 
      Splash(); 
     } 
    } 

    public boolean checkInternet() { 
     boolean mobileNwInfo; 
     ConnectivityManager conxMgr = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); 
     try { 
      mobileNwInfo = conxMgr.getActiveNetworkInfo().isConnected(); 
     } catch (NullPointerException e) { 
      mobileNwInfo = false; 
     } 
     return mobileNwInfo; 
    } 

    public void Splash() { 
     int SPLASH_TIME_OUT = 5000; 
     new Handler().postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       Intent i = new Intent(SplashActivity.this, Main2Activity.class); 
       startActivity(i); 
       finish(); 
      } 
     }, SPLASH_TIME_OUT); 
    } 
} 
+0

使用此代码,即使存在活动的Internet连接,警报对话框也始终处于打开状态。 –

+0

如果条件** if(!checkInternet())**更改,请检查我的更新代码。 –

+0

现在,完美的作品。启用互联网后,返回启动活动再次运行并打开新活动。非常感谢。 –

0
public class SplashActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_splash); 

boolean mobileNwInfo; 
ConnectivityManager conxMgr = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); 
try { 
    mobileNwInfo = conxMgr.getActiveNetworkInfo().isConnected(); 
    } 
catch (NullPointerException e) { mobileNwInfo = false; } 
if (!mobileNwInfo) { 
    new SweetAlertDialog(this, SweetAlertDialog.WARNING _TYPE) 
      .setTitleText("Info ") 
      .setCustomImage(R.mipmap.alert) 
      .setContentText("No internet connection!") 
      .setConfirmText("OPEN SETTINGS") 
      .setConfirmClickListener(new SweetAlertDialog.OnSweetClickListener() { 
       @Override 
       public void onClick(SweetAlertDialog sDialog) { 
        sDialog.dismissWithAnimation(); 
        startActivityForResult(new Intent(android.provider.Settings.ACTION_SETTINGS), 0); 
       } 
      }) 
      .show(); 
} 
else 
{ 
    Splash(); 
} 


} 

    public void Splash() 
{ 
int SPLASH_TIME_OUT = 5000; 
new Handler().postDelayed(new Runnable() { 

    @Override 
    public void run() { 

     Intent i = new Intent(SplashActivity.this, Main2Activity.class); 
     startActivity(i); 
     finish(); 
    } 
}, SPLASH_TIME_OUT); 
} 

    } 

中的Manifest.xml添加此

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
1

只需粘贴在onStart(此代码)和其他的onCreate块 删除(捆绑savedInstanceState )

void onStart() 
{ 
    boolean mobileNwInfo; 
    ConnectivityManager conxMgr = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); 
    try { 
      mobileNwInfo = conxMgr.getActiveNetworkInfo().isConnected(); 
     }catch (NullPointerException e) { mobileNwInfo = false; } 


if (mobileNwInfo) { 

    Splash(); 
} 

} 
相关问题