Android 安卓;“家”;第一次调用onCreate()时的关键问题
当我第一次打开应用程序时,我按了home键 再次单击我的应用程序 它不是直接调用onResume()。它是从启动屏幕onCreate()加载的 这是安卓默认的吗 按下“后退”按钮后,应用程序已关闭。之后,我打开应用程序并按下home键,问题不在于调用Resume()方法,而在于启动屏幕onCreate()。 我的问题是,在按后退键之前,如果我们按home键并打开应用程序,应用程序将重新打开。它添加在堆栈中 我已经下载了“Facebook”应用程序并进行了检查。那个应用程序也有同样的问题Android 安卓;“家”;第一次调用onCreate()时的关键问题,android,Android,当我第一次打开应用程序时,我按了home键 再次单击我的应用程序 它不是直接调用onResume()。它是从启动屏幕onCreate()加载的 这是安卓默认的吗 按下“后退”按钮后,应用程序已关闭。之后,我打开应用程序并按下home键,问题不在于调用Resume()方法,而在于启动屏幕onCreate()。 我的问题是,在按后退键之前,如果我们按home键并打开应用程序,应用程序将重新打开。它添加在堆栈中 我已经下载了“Facebook”应用程序并进行了检查。那个应用程序也有同样的问题 如何在a
如何在android中解决此问题?当应用程序不在前台时,android可能会决定终止应用程序。如果应用程序被终止,重新启动它可能会再次显示启动屏幕
When open my application first time , i pressed home key.
again i click my application.
当您按主控键时,您的应用程序将进入后台,如果您直接从后台应用程序列表中打开应用程序,它将从您离开的位置开始。(主控键旁边的按钮)
如果您单击应用程序列表中的应用程序图标,它将从第一个活动再次启动。
你可以参考这个链接
检查开发人员选项。
我猜你的问题是“不要保留活动”。如果你在后台需要太多内存,我想你的应用程序会被杀死。因此,如果你知道你的应用程序进入后台,请释放一些内存。它不能完全是为了测试,你可以试试 还有一个回调通知您应该释放内存:
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
@Override
public void onTrimMemory(int level) {
super.onTrimMemory(level);
if(level >= TRIM_MEMORY_MODERATE) {
// free some memory
} else if(level >= TRIM_MEMORY_BACKGROUND) {
// free some more memory
}
}
我从这里得到了解决方案: 在启动屏幕活动中添加以下代码onCreate()方法:
if (!isTaskRoot()) {
final Intent intent = getIntent();
final String intentAction = intent.getAction();
if (intent.hasCategory(Intent.CATEGORY_LAUNCHER) &&
intentAction != null && intentAction.equals(Intent.ACTION_MAIN)) {
finish();
}
}
检查尼拉利的回答是否错误。仅当android.intent.action.MAIN被终止(手动或由系统终止)时,才会启动它。如果使用“主页”按钮,然后重新启动它,它将识别活动堆栈并返回到上一个活动。从应用程序列表启动它并不重要。