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

时间:2016-03-10 10:28:13

标签: android

我的应用程序提取json数据以填充回收站视图。为此,我必须确保在每个时间点都必须激活互联网连接。

我正在使用此代码检查..

    private boolean isOnline() {
            ConnectivityManager cm = (ConnectivityManager) getContext().getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo netInfo = cm.getActiveNetworkInfo();
            if (netInfo != null && netInfo.isConnectedOrConnecting())
            {
                return true;
            }
            return false;
        }

如果互联网未激活,我正在显示连接对话框

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();
    }

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

使用以下代码从WIRELESS设置活动中获取结果。

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

并在onActivityResult()

中实现您的代码

答案 2 :(得分:-1)

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

AsyncTask drawing

这很简单,方法明确可以理解,请仔细看看!希望这能帮到你!