【问题标题】:Android Java Application duplicated executionAndroid Java 应用重复执行
【发布时间】:2016-08-22 09:53:45
【问题描述】:

我正在尝试构建 android 应用程序,但遇到了一些问题。

在默认活动中,我有以下代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
    setContentView(R.layout.activity_start);

    Log.d(LOG_NAME, "Опрос успешно обновлен (#" + loading_trys + ")");
}

启动我的应用程序后,日志显示:

08-22 14:40:56.098 10857-10857/ru.oprosy D/LOG: Опрос успешно обновлен (#0)
08-22 14:40:56.155 10857-10857/ru.oprosy D/LOG: Опрос успешно обновлен (#0)

问题在于代码的重复执行。我正在寻求帮助以确定可能做错了什么。谢谢!

【问题讨论】:

  • 您能解释一下为什么您要尝试将方向更改为横向吗?有这个要求吗??

标签: java android android-activity android-lifecycle activity-lifecycle


【解决方案1】:

Acitvity onCreate 方法被调用两次,因为发生了配置更改:方向更改。在这种情况下,Activity 会停止并销毁,然后重新创建(再次调用onCreate)以构建其视图以用于屏幕的新配置。

为了更好地理解这个过程,请在 Activity 的每个生命周期回调中添加日志,例如在onCreateonResumeonStartonStop 等中。当您请求更改配置、最小化屏幕或关闭应用程序时,您将确切地看到发生了什么。

详细了解activity lifecycleconfiguration changes

【讨论】:

    猜你喜欢
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 2020-02-23
    • 2013-09-09
    • 1970-01-01
    • 1970-01-01
    • 2019-02-03
    • 1970-01-01
    相关资源
    最近更新 更多