我正在尝试制作一个应用程序,用户可以在其中呼叫他的朋友,但为了避免用户使用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);发布于 2013-06-20 06:37:24
我解决了..。我把我的旗帜改成了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);发布于 2013-06-20 03:28:58
我认为你可能需要你的活动是一个单一的实例,所以不是每次都创建一个新的,只要你还没有终止它,它就会尝试重用已经启动的活动,你需要阅读更多关于单实例或单任务活动的信息,这取决于适合你的问题,看看这个问题,希望它会有所帮助……
Android singleTask or singleInstance launch mode?
致以问候!
https://stackoverflow.com/questions/17199420
复制相似问题