0

我有一个活动android:launchMode="singleInstance"。我想从此启动相机,然后处理结果,但startActivityForResult不适用于 singleInstance。那么也许有可能使用onNewIntent方法从相机中获得结果?如果可能,我该如何实施?

4

1 回答 1

0

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

单任务:

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

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

单例:

与“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);
         }
    }
}
于 2016-05-02T16:18:37.820 回答