2012-09-13 127 views
2

首先我给你一个我的问题的简单例子。请记住,我的应用程序的想要的行为仅供我自己使用。用broadcastreceiver重新启动主要活动?

比方说,我有一个应用程序与一个活动和一些片段。此应用程序通过静态广播接收器启动,意图是,例如, ACTION_POWER_CONNECTED。到目前为止,我的执行情况都很好。

但是,这是一个missbehavior,我不知道如何解决权利。

如果应用程序正在运行,并且我将usb关闭并重新打开,则会在第一个第二个实例仍在运行时创建一个新的第二个活动实例。只是为了说清楚:如果我按后退按钮,第二个消失,第一个实例显示他的用户界面。

我搜索的方式来重新启动我的应用程序,如果它已经运行,并启动它,如果它没有运行。没有必要保存数据以用于任何形式的重用。我试着用FLAG_ACTIVITY_NEW_TASK,FLAG_ACTIVITY_BROUGHT_TO_FRONT和FLAG_ACTIVITY_CLEAR_TOP标志组合一些组合。但我认为这些对我来说是错误的。接下来的尝试是将显式中的Activity设置为singleInstance以确保不会有第二个实例。根本没有成功。

任何人都可以给我一个例子来解决我的问题,如我必须使用哪些标志?

回答

2

机器人:launchMode =“singleTask”在清单文件的活动标签,然后再试一次......

,如果你的活动已经在运行,然后用上面的标签显示其运行旧无法创建新活动活动..

你需要更新旧的运行活动UI或数据,然后使用方法的onResume其调用时意图广播...

感谢

+0

THX着投票.. –

+0

欢迎......你的问题的解决方案是重要的不选... – SBJ

相关问题