【问题标题】:startActivityForResult from ActivityGroup in jellybean causes restart applicationjellybean 中 ActivityGroup 的 startActivityForResult 导致重新启动应用程序
【发布时间】:2013-10-19 15:16:25
【问题描述】:

我有一个包含 4 个选项卡的应用程序,每个选项卡都有一个 ActivityGroup。

在一个标签中,在某些子活动中,我启动图库以获取照片:

意图 i = new Intent(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 的情况下在果冻豆中进行这项工作?

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

【问题讨论】:

  • “应用程序重启”是什么意思,更不用说“应用程序自动重启”了?
  • 应用程序重新启动,它被杀死并再次启动(显示启动器活动)。 LogCat 对此只字未提。

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


【解决方案1】:

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

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

有什么方法可以在果冻豆中进行这项工作而无需迁移到片段?

片段没有帮助,因为它已经按预期工作了。

【讨论】:

  • 我不同意,可能我解释得不好。如果我使用 startActivityForResult 从 ActivityGroup 的 childActivity 启动任何活动,则应用程序崩溃,并且如果我启动外部应用程序(图库)或同一应用程序的另一个活动,它具有相同的行为。这在以前的 Android 版本中运行良好,但果冻豆 4.3 杀死了我的应用程序。
  • @jimbo82:“如果我使用 startActivityForResult 从 ActivityGroup 的 childActivity 启动任何活动,应用程序就会崩溃”——你不能通过 ActivityGroup 或任何其他方式在你的应用程序中嵌入第三方活动方法。你可以试试,但通常你的应用程序会崩溃,因为你的进程对其他应用程序的数据没有权限等。从 Android 1.0 开始就是这种情况。您的应用已经在许多设备上崩溃,其中设备的 MediaStore 请求的默认活动不支持此嵌入。
  • @jimbo82:片段也无济于事,因为您无法将第三方活动嵌入片段中。
  • 感谢您的回答 CommonsWare,但是当您说“您不能通过 ActivityGroup 或任何其他方式在您的应用程序中嵌入第三方活动”时......您是说您无法启动手机照片库为您的应用程序挑选照片?
猜你喜欢
  • 2019-03-23
  • 1970-01-01
  • 2013-09-02
  • 1970-01-01
  • 2010-10-04
  • 2011-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多