来自jellybean中ActivityGroup的startActivityForResult导致重启应用程序

时间:2013-10-19 15:16:26

标签: android restart activitygroup android-4.2-jelly-bean

我有一个带有4个标签的应用程序,每个标签都有一个ActivityGroup。

在一个标签中,在某些儿童活动中,我启动图库来拍摄照片:

意图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);

直到果冻bean这个工作正常,在这个版本中,当我使用startActivityForResult启动一个活动时,当必须调用onActivityResult时,应用程序会自动重启。

我知道ActiviyGroup很久以前就被弃用了,我应该转移到Fragments但是,有没有什么方法可以让它在软件bean中运行而不迁移到Fragments?

我正在尝试修复它作为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,比我想象的要容易得多。

1 个答案:

答案 0 :(得分:0)

  

直到果冻bean这个工作正常,在这个版本中,当我使用startActivityForResult启动一个活动时,当必须调用onActivityResult时,应用程序会自动重启。

这是预期的行为。无法保证应用程序的进程在不在前台时保留在内存中。这与用户按下HOME时没有什么不同,后来通过最近任务列表返回到您的应用程序。

  

有没有办法让这种方法在果冻豆中运行而不迁移到Fragments?

片段无济于事,因为它已按预期工作。