2

第一次打开我的应用程序时,我按下了主页键。

我再次单击我的应用程序。

它没有直接调用 onResume() 。它从启动屏幕 onCreate() 加载。

它是android默认的吗?

在我按下“返回”按钮后,应用程序已关闭。在那之后,我打开了应用程序并按下了主页键,问题不是来自它的调用 onResume() 方法,而不是来自启动屏幕 onCreate()。

我的问题是,在按返回键之前,如果我们按主页键并打开应用程序,应用程序将重新打开。它添加到堆栈中。

我已经下载了“Facebook”应用程序并进行了检查。该应用程序也有同样的问题。

如何在android中解决这个问题?

4

5 回答 5

2

当您的应用程序不在前台时,Android 可能会决定终止它。如果应用程序被终止,再次启动它可能会再次显示启动屏幕。

于 2013-06-07T10:27:00.890 回答
1
When open my application first time , i pressed home key.
again i click my application.

当您按Home 键时,您的应用程序将进入后台,如果您直接从您离开的位置开始open your application from background apps list.(HOME 键旁边的按钮)

如果您单击应用程序列表中的应用程序图标,它将从第一个活动再次启动。

你可以参考这个链接

重新启动时如何使android应用程序返回上一个打开的活动?

于 2013-06-07T10:29:50.043 回答
1

检查您的开发人员选项。我的猜测是你的问题是“不要保持活动”。

于 2013-06-07T10:32:49.993 回答
1

我从这里得到了解决方案:http ://code.google.com/p/android/issues/detail?id=2373

在启动屏幕活动中添加此代码 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();
    }
}
于 2013-06-12T04:54:39.313 回答
0

如果您在后台需要太多内存,我认为您的应用程序将被杀死。因此,如果您知道您的应用程序进入后台释放一些内存。它不能只是为了测试,你可以尝试一下。

还有一个回调通知您应该释放内存:

@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
    }
}
于 2013-06-07T11:37:32.323 回答