我有一个带有android:launchMode="singleInstance"
的"活动"。我想从中启动相机,然后处理结果,但startActivityForResult
不适用于singleInstance。所以也许用onNewIntent
方法从摄像机上得到结果是可能的?如果可能的话,我该如何实现?
您可能需要同时查看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);
}
}
}