2015-11-21 71 views
0

我正在使用ZXing的IntentIntegrator来打开条形码扫描器活动。如果我使用后退按钮退出活动,则onActivityResult仍会被resultCode调用,而不是RESULT_OK。但是,如果我按主页按钮然后onActivityResult根本不被调用(也许最终当活动被处置,但远不如我需要的地方)。如果用户在我致电startActivityForResult后按下主页按钮,是否可以通知我?

我试着添加标志IntentIntegrator用来打开扫描仪的意图。我认为Intent.FLAG_ACTIVITY_NO_HISTORY以及Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS这样的标志可能会在主页按钮被按下时强制执行finish,但不管它是否完成onActivityResult不会触发。

什么样的选择呢我已经让我可以通知或调查,并要求在Activity(我没有写,不能改变)由startActivityForResult启动留给因为用户按下home键,从最新版开启另一个应用程序,从他们可能拥有的通知中打开一个应用程序,或以任何其他方式离开开始的活动?

回答

0

因为当你按Home时,被调用的活动实际上不是finish() ed;也不会返回到调用活动。这是预期的行为,因为被调用的活动仍然位于后台的顶部。

任何你要“修复”这将违背基本的Android功能。

+0

我想要对抗基本的Android功能。我想迫使我的应用程序得到回应。这是一个非常持久的闹钟应用程序,让我在早上起床。我要求我自己去扫描qr码,然后再打盹/关闭闹钟。如果用户可以打开扫描仪,然后按回家离开它,然后警报不会被延后或解散,这是一个问题。 –

+0

为什么不使用通知来允许用户恢复原来的活动?这就是Android的闹钟应用所做的。 – Melllvar

+0

用户可能不想回到原来的活动。我不是一个早起的人。我会在这个东西上下爪子,直到它关闭,然后转身不记得任何东西。如果我的应用程序没有收到明确的暂停或解除操作,则需要保留。 –

相关问题