Android onResultActivity在startActivyForResult之后立即调用

Android onResultActivity在startActivyForResult之后立即调用,android,Android,在我的主要活动中,我有以下代码: noConnectionButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { startActivityForResult(new Intent(Settings.ACTION_WIRELESS_SETTINGS), SET_CONNECTION); } }); 在on

在我的主要活动中,我有以下代码:

noConnectionButton.setOnClickListener(new OnClickListener() {

@Override
        public void onClick(View v) {
            startActivityForResult(new Intent(Settings.ACTION_WIRELESS_SETTINGS), SET_CONNECTION);

        }
    });
在onCreate方法中。然后:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if(requestCode == SET_CONNECTION){

        checkConnection();

    }

}
所以我想做的是启动设置活动,让用户可以打开无线或数据连接。 我的问题是onActivityResult被过早地称为!!!因此,我希望只有在用户返回到我的活动之后才能调用它。 有什么建议吗

这是舱单

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="it.polimi.metalnews"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="13"
    android:targetSdkVersion="19" />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<application
    android:allowBackup="true"
    android:icon="@drawable/launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="it.polimi.metalnews.MainActivity"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="it.polimi.metalnews.HomeActivity"
        android:label="@string/title_activity_home" >
    </activity>
    <activity
        android:name="it.polimi.metalnews.NewsActivity"
        android:label="@string/title_activity_news" >
    </activity>
    <activity
        android:name="it.polimi.metalnews.AlbumActivity"
        android:label="@string/title_activity_album" >
    </activity>
    <activity
        android:name="it.polimi.metalnews.ContestActivity"
        android:label="@string/title_activity_contest" >
    </activity>
</application>

遵循以下流程:

@凌驾

受保护的void onActivityResult(int请求代码、int结果代码、意图数据) {

//检查我们正在响应的请求

if (requestCode == PICK_CONTACT_REQUEST) {
    // Make sure the request was successful
    if (resultCode == RESULT_OK) {
        // The user picked a contact.
        // The Intent's data Uri identifies which contact was selected.

        // Do something with the contact here (bigger example below)
    }
}
}

有关详细信息,请使用以下链接:


在onActivity结果中,首先通过比较结果代码和结果是否正常来检查结果是否来自操作,如:

if(resultCode==RESULT\u OK){ //你成功地回来了,然后做你想做的事。 //然后,您可以根据您的要求检查特定数据。 }

因为如果结果不好,没有理由深入。如果用户取消了每个系统服务,则会导致结果\u OK或结果\u CANCEL

我不认为意向声明有任何错误,但我读了这类文章,它以更好的方式解释了您的问题


这是因为该活动是单任务,无论何时调用,它都会报告结果。

您好,请发布您的Mainfest您是否尝试将checkConnection()放在onResume()中?是的,但这样做我克服了意图本身的概念,而且每次调用onResume时我都会检查连接OK谢谢,我错过了这一点,但仍然会立即调用onActivityResult。也许我的意图声明错了?或特定的活动设置?@Tunarock查看此活动的启动模式我必须将启动模式设置为特定值?此活动清单中“android:launchMode”的当前值是多少?我假定为默认值,因为我尚未设置它