使用“设置”菜单提前调用OnActivityResult

时间:2012-09-25 16:11:52

标签: android android-intent android-activity application-settings android-lifecycle

在我的应用程序中,在进入应用程序之前,我必须检查我的wifi连接并将用户带到wifi设置,如果未启用wifi。

我不想使用WifiManager.setWifiEnabled();,因为我想让用户有机会设置它。

我已经提到了链接onActivityResult() called prematurely

以及onActivityResult and the Settings Menu

但它不适合我。几乎在我进入“设置”菜单的同时调用了OnActivityResult()onResume()

这是我的代码,

    AlertDialog.Builder alert = new AlertDialog.Builder(this);

    alert.setMessage("You are not currently connected to any network. Please turn on the network connection to continue.")
    alert.setPositiveButton("Settings", new DialogInterface.OnClickListener() 
    {
        @Override
        public void onClick(DialogInterface dialog, int arg1) 
        {
            Intent intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);
            startActivityForResult(intent,SETTINGSCODE);
            dialog.cancel();
        }
    });
    alert.show();

在onActivityResult()中,我在更改设置之前再次检查网络状态。

我能做什么OnActivityResult()

只有在从settings menu

返回后才会调用

请帮我解决这个问题.. !!

1 个答案:

答案 0 :(得分:1)

这就是我解决这个问题的方法。

对于针对类似问题发布的answer,我将startActivityForResult()更改为startActivity(),因为动作调用的顺序类似于

  1. startActivityForResult()
  2. onActivityResult()
  3. onCreate()(新活动)
  4. setResult()或finish()
  5. 控件进入设置页面,用户可以在其中打开/关闭Wi-Fi,然后返回应用程序。的:)