它不起作用,并且实现onSaveInstanceStance()的正确位置

时间:2013-11-06 18:36:10

标签: android

我试图掌握一个活动的生命周期回调方法的概念以及它们内部发生的事情。 我正在写一个只显示文本的小活动类。 问题是活动开始显示,我得到一个对话框,说“不幸的是,活动生命周期和协调已停止工作”

  1. 请告诉我如何解决这个问题。

    代码如下: -

    package com.practice.lifecycle_coordination;

    //import android.app.ActionBar;
    import android.app.Activity;
    //import android.os.Build;
    import android.os.Bundle;
    
    class MainActivity extends Activity{
        protected void onCreate(Bundle savedInstanceState){
            super.onCreate(savedInstanceState);
    
            setContentView(R.layout.activity_main);
    
        }
    
        protected void onStart(){
            super.onStart();
        }
    
        protected void onResume(){
            super.onResume();
        }
    
        protected void onPause(){
            super.onPause();
        }
    
        protected void onStop(){
            super.onStop();
        }
    
        public void onSaveInstanceState(Bundle savedInstanceState){
            super.onSaveInstanceState(savedInstanceState);
        }
    
    }
    
  2. 布局文件: -

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
    
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@+string/title"
            android:gravity="center_horizontal"
            android:textStyle="bold" />
    
    
    </LinearLayout>
    

    STRINGS RESOURCE FILE: -

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    
        <string name="app_name">Activity LifeCycle</string>
        <string name="action_settings">Settings</string>
        <string name="title">MAIN ACTIVITY</string>
    
    </resources>
    
    1. onSaveInstanceState()是否在正确的位置实现?如果我想将一些额外的数据保存到捆绑包中,这是实现它的正确位置吗?
    2. 我知道除了onCreate()之外,我不需要编写任何生命周期回调方法。但我只是想检查一下。

1 个答案:

答案 0 :(得分:0)

您不必实际编写onCreate()。您必须编写的唯一生命周期方法是您需要在其中覆盖和实现自己的代码的方法。几乎每个onCreate()都会覆盖Activity,但是,因为您通常希望在生命周期中使用此点来初始化变量等。


至于Is onSaveInstanceState() implemented at the right place?

是。生命周期方法发生在Activity内的顺序无关紧要。只要你参加了正确的活动,你就没事了。当您的活动经历这些生命周期阶段时,会自动调用这些方法。


至于当前代码究竟出了什么问题?我们需要更多信息。您的logcat将为您提供有关实际导致崩溃的信息。发布,并且可以更好地诊断您的问题。