Android 从设置启用网络连接后恢复活动

Android 从设置启用网络连接后恢复活动,android,Android,我的应用程序获取json数据以填充recycler视图。为此,我必须确保在每个时间点互联网连接都必须处于活动状态 我正在使用此代码检查 private boolean isOnline() { ConnectivityManager cm = (ConnectivityManager) getContext().getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo netIn

我的应用程序获取json数据以填充recycler视图。为此,我必须确保在每个时间点互联网连接都必须处于活动状态

我正在使用此代码检查

    private boolean isOnline() {
            ConnectivityManager cm = (ConnectivityManager) getContext().getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo netInfo = cm.getActiveNetworkInfo();
            if (netInfo != null && netInfo.isConnectedOrConnecting())
            {
                return true;
            }
            return false;
        }
如果internet未处于活动状态,我将显示一个连接对话框

private void showNoConnectionDialog(Context context) {
        final Context ctx = context;
        AlertDialog.Builder builder = new AlertDialog.Builder(ctx);
        builder.setCancelable(false);
        builder.setMessage(R.string.no_connection);
        builder.setTitle(R.string.no_connection_title);
        builder.setPositiveButton(R.string.settings_button_text, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which)
            {
                ctx.startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));
            }
        });
        AlertDialog alert = builder.create();
        alert.show();
    }

这工作正常,我可以导航到设置以启用internet连接,但如何在用户打开internet并按下“后退”按钮后立即恢复活动或重新启动活动。这是为了确保用户不需要关闭应用程序并重新启动。请提供一些解决方案

您应该使用AsyncTask来完成这项工作,我曾经从这张图纸中学到:

@Override
public void onResume() {
super.onResume();
if(isOnline() )
{
   // call your method
 }
else
{
   showNoConnectionDialog(context); //display dialog
 }
}


它非常简单,方法也很明确,很容易理解,请看一看!希望这对你有帮助

使用以下代码从“无线设置”活动返回结果

startActivityForResult(new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS), 0);

并在onActivityResult()中实现您的代码。

使用广播接收器检查您何时连接回Internet。这并不能解决上述问题