J'essaie d'obtenir le resultCode à OK dans ma fonction onActivityResult. Cependant, ça revient toujours à 0. J'ai passé plusieurs jours là-dessus, et je n'arrive pas à comprendre pourquoi ça ne marche pas. Voici mon code. Si quelqu'un peut m'aider, je serai très reconnaissant, Merci.resultCode est toujours 0
Ma classe Activité1:
private class MyTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
// process
return result;
}
@Override
protected void onPostExecute(String result) {
Intent i = new Intent(Activity1.this, Activity2.class);
i.putExtra("Value1", "This value one for ActivityOne ");
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivityForResult(i, REQUEST_CODE);
textView.setText(result);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK && requestCode == REQUEST_CODE) {
// do something
}
}
Mon activité 2 Classe:
@Override
public void finish() {
Intent data = new Intent();
data.putExtra("returnKey1", "return 1");
setResult(RESULT_OK, data);
super.finish();
}
Mon manifeste:
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Activity1"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Activity2"
android:label="@string/app_dialog_name"
android:launchMode="singleTop"
android:excludeFromRecents="true"
android:taskAffinity=""
android:theme="@android:style/Theme.Dialog">
</activity>
</application>
Où et comment la variable RESULT_OK est déclarée? – NOSTRA
@NOSTRA: RESULT_OK est une constante publique statique déclarée dans Activity. – c05mic
En outre, lorsque j'essaie de le déboguer, j'ai remarqué que onActivityResult est appelé immédiatement avant que MyActivity2 ne démarre. –