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”的当前值是多少?我假定为默认值,因为我尚未设置它