如何从其他应用程序恢复活动?

时间:2013-06-19 19:12:47

标签: android android-intent

我正在尝试创建一个用户可以调用他的朋友的应用程序,但是为了避免用户使用来自android的本机调用意图,我启动本机意图并使用广播接收器我将之前的应用程序恢复为屏幕,它模拟一个带有挂断按钮,扬声器按钮等的通话屏幕......

然而,我的广播接收器位于另一个APK(出于架构原因)...我怎样才能在其状态下恢复我之前的APK?实际上我试图使用这个代码,但它没有恢复我的活动,它创建一个新的,丢失旧数据

PackageManager packageManager = context.getPackageManager();
Intent i= packageManager.getLaunchIntentForPackage("path.to.package");
i.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
context.startActivity(i);

2 个答案:

答案 0 :(得分:1)

我认为您需要可能需要将您的活动设置为单一实例,因此每次都不会创建新活动,只要您还没有杀死它,它就会尝试重用已经启动的活动,您需要阅读更多关于单个实例或单一任务活动取决于你的问题,看看这个问题,希望它会有所帮助......

Android singleTask or singleInstance launch mode?

问候!

答案 1 :(得分:1)

我解决了......我将我的旗帜改为FLAG_ACTIVITY_SINGLE_TOP

最终代码:

PackageManager packageManager = context.getPackageManager();
Intent i= packageManager.getLaunchIntentForPackage("path.to.package");
i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
context.startActivity(i);