正如已经指出的正确的android重新启动您的应用程序。这与您的应用程序在后台时的行为相同,因为使用更多内存,系统会杀死您的应用程序。 当您回到应用程序时,会发生什么情况是重新创建了最后一个活动包含片段。
通常启动屏幕(启动画面)用于初始化应用程序。 一旦应用程序初始化(例如服务,viewmodel已准备就绪),启动活动将切换到主要活动。
当应用程序被重新创建(例如撤消权限)时,许多应用程序会发生常见的崩溃,因为应用程序未初始化并且使用的服务或视图模型为空。 我不认为有一种方法可以避免应用程序重新启动后最后一次活动的重新创建。
你可以做的是检查应用程序是否被初始化,否则切换到启动活动并初始化应用程序。 请注意,您必须处理活动中的单元化应用程序以及碎片。
Xamarin示例代码:
if (!((MyApplication)ApplicationContext).IsInitialized)
{
Intent intent = new Intent(Application.Context,typeof(StartupActivity));
intent.SetFlags(ActivityFlags.NewTask);
StartActivity(intent);
Finish();
}
只要base.onCreate被称为创建所述片段所以即使是提供“解决方法”从ACS-球队没有避免最后一个片段的娱乐。
利用上述提供的样本代码的生命周期将在壳体的活性有片段:
撤销许可的应用程序就会被杀死
重新启动应用程序
应用的OnCreate
LastActivity.OnCreate
LastFragment.OnAttach
LastFragment.OnCreate
LastFragment.OnCreateView
LastFragment.OnViewCreated
LastFragment.OnDestroy
LastFragment.OnDettach
LastActivity.OnDestroy
StartupActivity.OnCreate
通过您还可以测试应用程序的方式重新启动亚行外壳:
打开你的应用程序,然后去和固醇主屏幕,以使您的应用程序在后台
adb shell "ps | grep " // get the app process id
adb shell run-as kill // kill the app
启动您的应用程序再次在该图标或近期任务