2016-09-27 2 views
1

Я хочу знать, что происходит в следующем случае + FIX.Android, startAcitivity для результата производит странный поток

Как-то после вызова
fragment.startActivityForResult -> кода достигает первый onActivityResult (на фрагмент, с результатом 0 = Отменено), то внутри второй активности.
То же самое, если я использую getActivity(). startActivityForResult .. Я проверил с помощью отладчика. После того, как я отвечу от второй операции, код не достигнет onActivityResult (например, он был «поглощен»?)

Я создаю приложение Launcher, у меня в работе есть немного дерьма в Manifest, но не думаю, что это оттуда ,

<activity android:name=".ui.home.HomeActivity" 
    android:launchMode="singleTask" 
    android:stateNotNeeded="true" 
    android:screenOrientation="portrait" 
    android:excludeFromRecents="true"/> 

<activity android:name=".ui.apps.AppsActivity" 
    android:launchMode="singleTask" 
    android:stateNotNeeded="true" 
    android:screenOrientation="portrait" 
    android:windowSoftInputMode="stateHidden"/> 

Это, как я создаю намерение

intent = new Intent(getActivity(), AppsActivity.class); 
intent.putExtra(AppsActivity.KEY_PICK_APP, true); 
getActivity().startActivityForResult(intent,BottomShortcutsFragment.REQUEST_CODE_PICK_APP); 

Это, как я отвечаю

Intent intent = new Intent(); 
intent.putExtra(KEY_SELECTED_APP, packageName); 
setResult(Activity.RESULT_OK, intent); 
finish(); 

UPDATE # 1 Это из манифеста, он работает, если удалить от второй активности андроид: launchMode = "singleTask"

<activity 
    android:name=".ui.apps.AppsActivity" 
    android:screenOrientation="portrait" 
    android:stateNotNeeded="true" 
    android:windowSoftInputMode="stateHidden" /> 
+0

Пожалуйста берег все соответствующие методы. Весь код должен находиться внутри класса и метода. Это Java в конце концов. –

ответ

1

Предполагаю, что вы вызываете startActivityForResult() в фрагменте. В вашем коде результат вернется к Activity, а не к фрагменту.

Итак, попробуйте использовать так:

intent = new Intent(getActivity(), AppsActivity.class); 
intent.putExtra(AppsActivity.KEY_PICK_APP, true); 
startActivityForResult(intent,BottomShortcutsFragment.REQUEST_CODE_PICK_APP); 
+0

Я знаю об этом .. это было не так. Во всяком случае, похоже, что-то в манифесте. – pulancheck1988