无法从wifi配置页面返回

时间:2014-01-02 12:08:54

标签: android system wificonfiguration

我开发了一个非常简单的应用程序,它连接到一个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);
    }
}

我尝试创建onStart,onRestart ...方法,但应用程序崩溃了。

有什么想法吗?应该使用startActivityForResult和onActivity Result以及我应该在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 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);
}

}

1 个答案:

答案 0 :(得分:1)

始终会调用

sendIntent();。这是onCreate()中的最后一个陈述。如果您只想调用一次,请考虑更改其位置。

NinjaEdit:你没有(或者至少没有显示,我希望?)onActivityResult(int requestCode, int resultCode, Intent data)。我不确定你是否可以从那里返回任何结果(如果你肯定打开GPS设置就不能),所以如果你不能,我建议你使用标志(如果是第一次调用方法,当调用时旗帜,并在返回时决定做什么)。