【问题标题】:Android get result from Camera Intent in onNewIntentAndroid从onNewIntent中的Camera Intent获取结果
【发布时间】:2016-05-02 15:53:54
【问题描述】:

我有一个 android:launchMode="singleInstance" 的活动。我想从这里启动相机然后处理结果,但startActivityForResult 不适用于单实例。那么也许可以使用onNewIntent 方法从相机获取结果?如果可能,我该如何实现?

【问题讨论】:

  • 是启动模式的错字吗?
  • 不,我需要 launchMode singleInstance 来实现某些功能,但现在我不知道如何使用相机意图
  • android:launchMode="singleInstance"
  • 哦,错了,谢谢:)
  • 你读过this吗?

标签: android startactivityforresult onnewintent


【解决方案1】:

您可能希望同时查看 singleTask 和 singleInstance。

单任务:

系统创建一个新任务并在新任务的根目录下实例化活动。但是,如果活动的实例已经存在于单独的任务中,系统会通过调用其 onNewIntent() 方法将意图路由到现有实例,而不是创建新实例。一次只能存在一个活动实例。

注意:虽然活动在新任务中开始,但“后退”按钮 仍将用户返回到上一个活动。

singleInstance:

与“singleTask”相同,只是系统不会在持有该实例的任务中启动任何其他活动。活动始终是其任务中唯一且唯一的成员;由这个启动的任何活动都在单独的任务中打开。

注意:这意味着具有启动模式的活动总是在一个单一的 活动实例任务。这是一种非常专业的模式,应该 仅在完全作为一个应用程序实现的应用程序中使用 活动。

你可以试试这样的

protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    Uri uri = intent.getData();
    if (uri != null && uri.toString().startsWith(CALLBACK_URL)) {

        try {
            //load image goes 

         } catch (Exception e) {
             Log.e(TAG, e.getMessage(), e);
         }
    }
}

【讨论】:

    猜你喜欢
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-23
    相关资源
    最近更新 更多