Android 无法从wifi配置页面返回

Android 无法从wifi配置页面返回,android,system,wifi,Android,System,Wifi,我开发了一个非常简单的应用程序,可以连接到wifi网络,然后做一些事情 我的想法是打开wifi配置页面来选择wifi网络 在此之前,我做得很好,但当我按下后退按钮返回到我的应用程序时,它会重新加载wifi配置页面 这是我的密码: public class SetHttp extends Activity { public final static String EXTRA_MESSAGE = "com.example.WebcamView.MESSAGE"; @Override

我开发了一个非常简单的应用程序,可以连接到wifi网络,然后做一些事情

我的想法是打开wifi配置页面来选择wifi网络

在此之前,我做得很好,但当我按下后退按钮返回到我的应用程序时,它会重新加载wifi配置页面

这是我的密码:

public class SetHttp extends Activity {
    public final static String EXTRA_MESSAGE = "com.example.WebcamView.MESSAGE";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_set_http);
        WifiManager mWifi = (WifiManager)getSystemService(Context.WIFI_SERVICE);
        if(!mWifi.isWifiEnabled()){
            mWifi.setWifiEnabled(true);
        }
        sendIntent();
    }

    protected void sendIntent(){
        Intent enwifi = new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS);
        startActivityForResult(enwifi, 3);
    }

    public void sendHttp(View view){
        Intent intent = new Intent(this, WebPage.class);
        EditText editText = (EditText) findViewById(R.id.edit_message);
        String message = editText.getText().toString();
        intent.putExtra(EXTRA_MESSAGE, message);
         startActivity(intent);
    }
}
public class SetHttp extends Activity {
public final static String EXTRA_MESSAGE = "com.example.WebcamView.MESSAGE";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_set_http);
    WifiManager mWifi = (WifiManager)getSystemService(Context.WIFI_SERVICE);
    if(!mWifi.isWifiEnabled()){
        mWifi.setWifiEnabled(true);
    }
    //sendIntent();
}
protected void onStart(){
    super.onStart();
    //sendIntent();
}
protected void onRestart(){
    super.onRestart();
    //sendIntent();
    setContentView(R.layout.activity_set_http);
}
protected void onPause(){
    super.onPause();
    setContentView(R.layout.activity_set_http);
}
protected void onStop(){
    super.onStop();
}
protected void onResume(Bundle savedInstanceState){
    super.onResume();
    setContentView(R.layout.activity_set_http);
    sendIntent();
}

protected void sendIntent(){
    Intent enwifi = new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS);
    startActivity(enwifi);
}

public void sendHttp(View view){
    Intent intent = new Intent(this, WebPage.class);
    EditText editText = (EditText) findViewById(R.id.edit_message);
    String message = editText.getText().toString();
    intent.putExtra(EXTRA_MESSAGE, message);
     startActivity(intent);
}
我已尝试创建onStart、onRestart。。。方法,但应用程序崩溃

有什么想法吗?应该使用startActivityForResult和onActivity结果,我应该在ActivityResult上写些什么

非常感谢

我试过一些东西,但都不管用。这是我的密码:

public class SetHttp extends Activity {
    public final static String EXTRA_MESSAGE = "com.example.WebcamView.MESSAGE";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_set_http);
        WifiManager mWifi = (WifiManager)getSystemService(Context.WIFI_SERVICE);
        if(!mWifi.isWifiEnabled()){
            mWifi.setWifiEnabled(true);
        }
        sendIntent();
    }

    protected void sendIntent(){
        Intent enwifi = new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS);
        startActivityForResult(enwifi, 3);
    }

    public void sendHttp(View view){
        Intent intent = new Intent(this, WebPage.class);
        EditText editText = (EditText) findViewById(R.id.edit_message);
        String message = editText.getText().toString();
        intent.putExtra(EXTRA_MESSAGE, message);
         startActivity(intent);
    }
}
public class SetHttp extends Activity {
public final static String EXTRA_MESSAGE = "com.example.WebcamView.MESSAGE";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_set_http);
    WifiManager mWifi = (WifiManager)getSystemService(Context.WIFI_SERVICE);
    if(!mWifi.isWifiEnabled()){
        mWifi.setWifiEnabled(true);
    }
    //sendIntent();
}
protected void onStart(){
    super.onStart();
    //sendIntent();
}
protected void onRestart(){
    super.onRestart();
    //sendIntent();
    setContentView(R.layout.activity_set_http);
}
protected void onPause(){
    super.onPause();
    setContentView(R.layout.activity_set_http);
}
protected void onStop(){
    super.onStop();
}
protected void onResume(Bundle savedInstanceState){
    super.onResume();
    setContentView(R.layout.activity_set_http);
    sendIntent();
}

protected void sendIntent(){
    Intent enwifi = new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS);
    startActivity(enwifi);
}

public void sendHttp(View view){
    Intent intent = new Intent(this, WebPage.class);
    EditText editText = (EditText) findViewById(R.id.edit_message);
    String message = editText.getText().toString();
    intent.putExtra(EXTRA_MESSAGE, message);
     startActivity(intent);
}
}
sendIntent()将始终被调用。这是
onCreate()
中的最后一条语句。如果你想只调用它一次,考虑改变它的位置。< /P>
NinjaEdit:您没有(或者至少没有显示,我希望?)
onActivityResult(int-requestCode、int-resultCode、Intent-data)
。我不确定您是否可以从那里返回任何结果(如果您确实打开GPS设置,则无法返回),因此如果无法返回,我建议您使用标志(如果是第一次,请在调用时调用该方法,然后在返回时决定要做什么).

谢谢你的回答好的,我得到了第一条评论,那么你建议我把它放在哪里,这样它就可以工作一次,然后我就可以返回我的应用程序了?只需设置一个连接标志=false。而不是sendIntent();如果在onRestart()中(!connected){sendIntent();}可以添加此部件,但请确保只调用一次(例如,为firstRun添加另一个标志),并在onCreate()中设置为true。ConnectivityManager connManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_服务);NetworkInfo ni=connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);如果(ni.isConnected()){connected=true;}那么现在当你回来时,你不应该让它再次启动。很抱歉格式不好,我猜注释对代码不太好。如果我没解释清楚,请再问一次。谢谢你试图帮助我。我真的不明白你说的那些话该放在哪里。我还有一个问题。我知道,当一个活动调用另一个活动时,当您按下新活动的后退按钮时,它会将您带到上一个活动。假设我将sendIntent()放在onStart()中。然后它应该在我第一次运行应用程序时打开,选择我的wifi网络,然后当我单击“上一步”时,它会将我带到我的应用程序。这个想法的错误在哪里?这就是为什么我告诉你创建另一个标志。例如,在onStart中,您不能更改标志,因此您将检查默认选项是否为false。在onCreate中,您可以更改标志,因此当您转到Wi-Fi设置并返回时,该标志将允许onStart的检查方法运行。基本上,第一次你不会放过它,但以后任何时候都会放过它。如果您不想在之后的任何时间更改此标志,您可以在从wi-fi设置窗口返回时始终更改此标志。