【发布时间】:2014-01-28 09:55:26
【问题描述】:
可以从我的应用程序 A 打开应用程序 B。就像我的应用程序中的 PDF 在 Adobe Systems 的 PDF 阅读器中打开一样。
但我需要在用户保存 PDF 或在 PDF 上完成他的工作(编辑、评论等)后尽快从 PDF 阅读器回来。
如果我对 APP B 没有任何控制权,这可能吗?
【问题讨论】:
标签: android pdf android-intent
可以从我的应用程序 A 打开应用程序 B。就像我的应用程序中的 PDF 在 Adobe Systems 的 PDF 阅读器中打开一样。
但我需要在用户保存 PDF 或在 PDF 上完成他的工作(编辑、评论等)后尽快从 PDF 阅读器回来。
如果我对 APP B 没有任何控制权,这可能吗?
【问题讨论】:
标签: android pdf android-intent
可以将控制权从另一个应用程序恢复到您的应用程序。
您需要使用 startActivityForResult 来启动其他应用程序 并重写将控件返回到的onActivityResult方法。
例如,您正在打开默认相机应用。你无法控制它。 使用 startActivityForResult 启动该应用,
final Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile("URI"));
startActivityForResult(intent,Reqcode);
关闭应用后,控件会返回如下方法。参数中的结果码,会告诉你用户操作是否成功。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//your code here
}
【讨论】:
不知道有没有直接的方法,如果没有,可以按照这个方法:
在这里参考我的回答:Android how to know an app has been started and range apps priority according the starting times
因此,您需要知道要启动的应用程序的 包名称 才能查看 PDF(或任何应用程序),您显然会知道,因为您是通过我想是有意图的。
就在启动 app B 之前,启动 Asynctask() 或任何后台线程,您可以在其中检查 app B 是否存在于前台,在那个问题中使用我的答案。当您关闭应用 B(当您的工作完成时),它将不再存在于前台,因此请使用相同的方法检查 应用 A 是否存在于前台。
如果是这样,那就太好了。否则,使用 intent 来启动 app A,以便实现您想要的功能。
【讨论】: