2014-02-24 28 views
0

在我的主要活动后,我有这样的代码:onResultActivity被称为立即startActivyForResult

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> 

+0

您好请发表您的主要消息 –

+2

您是否尝试将checkConnection()放入您的onResume()中? – Ayoub

+0

是的,但这样做,我克服了意图本身的概念,而且我会检查连接**每**时间onResume被称为 – Tunarock

回答

0

按照此过程:

@覆盖

保护无效onActivityResult(INT requestCode,INT resultCode为,意图数据) {

//检查哪个请求uest我们应对下面的链接了解更多细节

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) 
    } 
} 

}

使用:

http://developer.android.com/training/basics/intents/result.html

0

在onActivity导致第一次检查,如果结果是从行动是为确定或而不是通过将结果代码与RESULT_OK比较:

if(resultCode == RESULT_OK){ // You成功回来然后做你想做的事。 //然后你可以根据你的要求检查你的特定数据。 }

因为如果结果不好,没有理由深究。如果用户取消,每个系统服务都将导致RESULT_OK或RESULT_CANCEL。

我不认为有什么不妥意图的声明,但是我读这种文章link它说明以更好的方式您的问题

这是由于活动是SingleTask,每当它被称为它报告结果。

+0

好的谢谢,我错过了,但仍立即调用onActivityResult。也许我对意向声明有误?或特定的活动设置? – Tunarock

+0

@Tunarock查看您的此活动的启动模式 –

+0

我必须将启动模式设置为特定值? – Tunarock