最近应用程序列表中的Android应用简历(Android resume app from rece

2019-09-01 05:15发布

我试图修复一个bug在我的代码,而且我希望有人能指出我在正确的方向。 如果我的应用程序进入后台,并得到用户只需进入“应用程序”,然后选择我的应用程序恢复,一切工作正常。

但是,如果把它放到后台,并通过按住home键,并从最近的应用程序列表中选择恢复它,我得到一个错误。 我的印象是这两个动作应该做同样事情下?

有谁知道有什么区别,从应用程序的正常列表恢复应用程序,VS按住home键向下恢复它,然后从列表中选择它之间?

Answer 1:

确切的答案取决于你的主屏幕桌面应用的执行位。 然而,从我经历了到目前为止,我敢肯定,...

  1. ...的应用程序,这是从你的菜单或主屏幕启动通常是由一个开始Intent 。 为了更准确:活动启动显示在其菜单中有一个动作的所有活动android.intent.action.MAIN"和类别android.intent.category.LAUNCHER ,如果你选择一个应用程序,它创建了一个Intent ,并通过该启动应用程序:

     Intent intent = new Intent(Launcher.context, SelectedActivity.class); intent .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); 

    这将创建最有可能你开始应用活动的新实例,除了一些标志,可能避免这种情况( android:launchMode="singleTop"

  2. ......看着近期任务此工作方式不同,据我可以看到:在任务列表依赖于最有可能的是通过创建一个列表getRecentTasks() ,并带来了选择的应用前。 这可以通过使用来完成moveTaskToFront() 。 只有当应用程序/活动已经完成了它的新创建(试杀应用程序,你会看到它被重建)。

结论:正如你所看到的近期任务列表中的工作有点像一个(去)回应用可能引起onResume()而从菜单中启动应用程序将导致onCreate()

注:一个应用程序包可能包含一个以上的应用程序。 联系人电话应用在许多情况下,在一个附带的应用程序包只是两个不同的活动(如APK文件)。

希望这有助于了解不同的行为...干杯!



文章来源: Android resume app from recent applications list