1

4 つのタブを持つアプリケーションがあり、それぞれに ActivityGroup があります。

1 つのタブで、特定の子アクティビティでギャラリーを起動して写真を選択します。

インテント i = 新しいインテント(Intent.ACTION_PICK); i.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, MediaStore.Images.Media.CONTENT_TYPE); getParent()。startActivityForResult (i,Documento.SELECCIONAR_FOTO_FROM_GALLERY);

これはゼリー ビーンまで正常に動作していました。このバージョンでは、startActivityForResult を使用してアクティビティを開始すると、onActivityResult を呼び出す必要があるときにアプリケーションが自動的に再起動します。

ActiviyGroup はずっと前から非推奨であり、Fragments に移行する必要があることは知っていますが、Fragments に移行せずにジェリー Bean でこれを機能させる方法はありますか?

ActivityGroup の childActivity としてギャラリーを開いて修正しようとしています:

        Intent i = new Intent(Intent.ACTION_PICK) ;
        i.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, MediaStore.Images.Media.CONTENT_TYPE) ;
        TabGroupActivity parentActivity = (TabGroupActivity)MyActivity.this.getParent();
        parentActivity.startChildActivity("MyGalleryActivity", i);  
        dialog.cancel();

しかし、次の例外があります:

10-19 16:10:48.403: E/AndroidRuntime(9237): java.lang.SecurityException: com.sec.android.gallery3d (uid 10112) からコードを要求し、プロセス jaime.mapas (uid 10165) で実行する

何か案は?

編集:

最後に Fragments に移行しましたが、思ったよりずっと簡単でした。

4

1 に答える 1

0

これはジェリー ビーンまで正常に動作していました。このバージョンでは、startActivityForResult を使用してアクティビティを開始すると、onActivityResult を呼び出す必要があるときにアプリケーションが自動的に再起動します。

これは予期される動作です。アプリのプロセスがフォアグラウンドにないときに、そのプロセスがメモリに残るという保証はありません。これは、ユーザーが [ホーム] を押してから、しばらくして最近のタスク リストを介してアプリに戻った場合と同じです。

Fragmentsに移行せずにジェリービーンでこれを機能させる方法はありますか?

フラグメントは、すでに期待どおりに機能しているため、役に立ちません。

于 2013-10-19T16:06:30.420 に答える