我试图修复一个bug在我的代码,而且我希望有人能指出我在正确的方向。 如果我的应用程序进入后台,并得到用户只需进入“应用程序”,然后选择我的应用程序恢复,一切工作正常。
但是,如果把它放到后台,并通过按住home键,并从最近的应用程序列表中选择恢复它,我得到一个错误。 我的印象是这两个动作应该做同样的事情下?
有谁知道有什么区别,从应用程序的正常列表恢复应用程序,VS按住home键向下恢复它,然后从列表中选择它之间?
我试图修复一个bug在我的代码,而且我希望有人能指出我在正确的方向。 如果我的应用程序进入后台,并得到用户只需进入“应用程序”,然后选择我的应用程序恢复,一切工作正常。
但是,如果把它放到后台,并通过按住home键,并从最近的应用程序列表中选择恢复它,我得到一个错误。 我的印象是这两个动作应该做同样的事情下?
有谁知道有什么区别,从应用程序的正常列表恢复应用程序,VS按住home键向下恢复它,然后从列表中选择它之间?
确切的答案取决于你的主屏幕或桌面应用的执行位。 然而,从我经历了到目前为止,我敢肯定,...
...的应用程序,这是从你的菜单或主屏幕启动通常是由一个开始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"
)
......看着近期任务此工作方式不同,据我可以看到:在任务列表依赖于最有可能的是通过创建一个列表getRecentTasks() ,并带来了选择的应用前。 这可以通过使用来完成moveTaskToFront() 。 只有当应用程序/活动已经完成了它的新创建(试杀应用程序,你会看到它被重建)。
结论:正如你所看到的近期任务列表中的工作有点像一个(去)回应用可能引起onResume()
而从菜单中启动应用程序将导致onCreate()
注:一个应用程序包可能包含一个以上的应用程序。 联系人及电话应用在许多情况下,在一个附带的应用程序包只是两个不同的活动(如APK文件)。
希望这有助于了解不同的行为...干杯!