温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Android中Activity的生命周期有哪些

发布时间:2021-06-26 15:37:06 来源:亿速云 阅读:124 作者:Leah 栏目:移动开发

Android中Activity的生命周期有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

Android中Activity的生命周期有哪些

首先看到的事onCreate()函数,顾名思义这个函数在Activity开始创建时调用,可以在其中定义一些初始化操作。接下来是 onStart()方法,这个方法在Activity开始被执行时调用,它紧随onCreate()方法之后调用,接着是onResume()方法,这个 方法对我们来说算是比较陌生的,这个方法是在该Activity或得用户输入焦点时被调用,这个或得用户输入焦点有点不好理解,如果我们用过 Android手机或者其他系统的手机时,经常会看到有些窗口虽然能看到但无法对他进行操作,这时的Activity就没有或得用户焦点。当这个方法调用 后Activity开始真正的运行了,在Activity正在运行时用户激活了另一个Activity,这时将调用***个Activity的 onPause()方法,可以理解为***个Activity被暂停了,这个时候如果系统的内存不够用,***个Activity的进程可能被停止(何时被停 止是由系统决定的,不需要我们参入),当下次我们再运行***个Activity时就需要重新创建这个Activity,那就又需要调用 onCreate()方法。如果在这个Activity没有被停止的情况下,我们重新调用***个Activity,就会直接调用它的onResume() 方法后开始运行。如果***个Activity很久都没有得到再次运行机会,就会调用onStop()被停止,这时如果Activity又或得用户输入焦 点,就会调用onRestart()方法,重新开始执行这个Activity,或者被系统停止,否则调用onDestroy()方法销毁 Activity。其实在实际开发中我们很少会用到所有的生命周期函数,但我们要弄清它的原理,在使用时知道所以然就行了。

下面来看一个实例

***个Activity的布局文件(main.xml):

Xml代码

<?xml version="1.0" encoding="utf-8"?>   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"       android:orientation="vertical"       android:layout_width="fill_parent"       android:layout_height="fill_parent"       >   <TextView         android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="@string/hello"       />   <Button       android:id="@+id/myButton"       android:layout_width="fill_parent"       android:layout_height="wrap_content"       android:text="@string/first_button"       />   </LinearLayout>

第二个Activity的布局文件(Second.xml):

Xml代码

<?xml version="1.0" encoding="utf-8"?>   <manifest xmlns:android="http://schemas.android.com/apk/res/android"         package="mars.activity05"         android:versionCode="1"         android:versionName="1.0">       <application android:icon="@drawable/icon" android:label="@string/app_name">           <activity android:name=".FirstActivity"                     android:label="@string/app_name">               <intent-filter>                   <action android:name="android.intent.action.MAIN" />                   <category android:name="android.intent.category.LAUNCHER" />               </intent-filter>           </activity>           <activity android:name=".SecondActivity"                     android:label="SecondActivity"                     android:theme="@android:style/Theme.Dialog"/>          </application>       <uses-sdk android:minSdkVersion="4" />      </manifest>

FirstActivity.java:

Java代码

package mars.activity05;      import android.app.Activity;   import android.content.Intent;   import android.os.Bundle;   import android.view.View;   import android.view.View.OnClickListener;   import android.widget.Button;      public class FirstActivity extends Activity {       /** Called when the activity is first created. */       private Button myButton;          @Override       public void onCreate(Bundle savedInstanceState) {           System.out.println("FirstActivity ---> onCreate   ");           super.onCreate(savedInstanceState);           setContentView(R.layout.main);           myButton = (Button) findViewById(R.id.myButton);           myButton.setOnClickListener(new ButtonListener());       }          @Override       protected void onDestroy() {           // TODO Auto-generated method stub           System.out.println("FirstAcvity --->onDestory");           super.onDestroy();       }          @Override       protected void onPause() {           // TODO Auto-generated method stub           System.out.println("FirstAcvity --->onPause");           super.onPause();       }          @Override       protected void onRestart() {           // TODO Auto-generated method stub           System.out.println("FirstAcvity --->onRestart");           super.onRestart();       }          @Override       protected void onResume() {           // TODO Auto-generated method stub           System.out.println("FirstAcvity --->onResume");           super.onResume();       }          @Override       protected void onStart() {           // TODO Auto-generated method stub           System.out.println("FirstAcvity --->onStart");           super.onStart();       }          @Override       protected void onStop() {           // TODO Auto-generated method stub           System.out.println("FirstAcvity --->onStop");           super.onStop();       }          class ButtonListener implements OnClickListener {              @Override           public void onClick(View v) {               // TODO Auto-generated method stub               Intent intent = new Intent();               intent.setClass(FirstActivity.this, SecondActivity.class);               FirstActivity.this.startActivity(intent);           }          }      }

SecondActivity.java:

Java代码

package mars.activity05;      import android.app.Activity;   import android.content.Intent;   import android.os.Bundle;   import android.view.View;   import android.view.View.OnClickListener;   import android.widget.Button;      public class SecondActivity extends Activity{          private Button secondButton;              @Override       protected void onCreate(Bundle savedInstanceState) {           System.out.println("SecondActivity--->onCreate");           // TODO Auto-generated method stub           super.onCreate(savedInstanceState);           setContentView(R.layout.second);           secondButton = (Button)findViewById(R.id.secondButton);           secondButton.setOnClickListener(new ButtonListener());       }          @Override       protected void onDestroy() {           // TODO Auto-generated method stub           System.out.println("SecondActivity--->onDestory");           super.onDestroy();       }          @Override       protected void onPause() {           // TODO Auto-generated method stub           System.out.println("SecondActivity--->onPause");           super.onPause();       }          @Override       protected void onRestart() {           // TODO Auto-generated method stub           System.out.println("SecondActivity--->onRestart");           super.onRestart();       }          @Override       protected void onResume() {           // TODO Auto-generated method stub           System.out.println("SecondActivity--->onResume");           super.onResume();       }          @Override       protected void onStart() {           // TODO Auto-generated method stub           System.out.println("SecondActivity--->onStart");           super.onStart();       }          @Override       protected void onStop() {           // TODO Auto-generated method stub           System.out.println("SecondActivity--->onStop");           super.onStop();       }          class ButtonListener implements OnClickListener{              @Override           public void onClick(View v) {               // TODO Auto-generated method stub               Intent intent = new Intent();               intent.setClass(SecondActivity.this, FirstActivity.class);               SecondActivity.this.startActivity(intent);           }                  }   }

看完上述内容,你们掌握Android中Activity的生命周期有哪些的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI