1、创建2个Activity: NormalActivity和DialogActivity,对应的三个layout命名为normal_layout和dialog_layout。
NormalActivity是普通的Activity
DialogActivity的主题为android:theme="@style/Theme.AppCompat.Dialog(在AndroidManifest.xml中对应的DialogActivity的Activity标签中加入以上字段
在FirstActivity中添加2个按钮,通过点击这两个按钮启动NormalActivity和DialogActivity。
重写这三个Activity的生命周期7个回调方法。在回调方法中打印Activity所在的类名称和回调方法名称。如:
Java | @Override |
Kotlin | override fun onStart() { super.onStart() Log.d(TAG, “$localClassName: onStart”) } |
代码:
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_first) val buttonNormal = findViewById<Button>(R.id.btn1) val buttonDialog = findViewById<Button>(R.id.btn2) buttonNormal.setOnClickListener { startActivity(Intent(this, NormalActivity::class.java)) } buttonDialog.setOnClickListener { startActivity(Intent(this, DialogActivity::class.java)) } } override fun onStart() { super.onStart() Log.d(TAG, "${localClassName}: onStart") } override fun onResume() { super.onResume() Log.d(TAG, "${localClassName}: onResume") } override fun onPause() { super.onPause() Log.d(TAG, "${localClassName}: onPause") } override fun onStop() { super.onStop() Log.d(TAG, "${localClassName}: onStop") } override fun onDestroy() { super.onDestroy() Log.d(TAG, "${localClassName}: onDestroy") } override fun onRestart() { super.onRestart() Log.d(TAG, "${localClassName}: onRestart") } companion object { const val TAG = "ActivityLifecycle" }
NormalActivity.kt
和
DialogActivity.kt
同理
dialog_layout.xml
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Dialog Activity" android:textAppearance="?android:attr/textAppearanceLarge" /> <Button android:id="@+id/backButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:rotationX="-5" android:text="Back" />
normal_layout.xml
<TextView android:layout_width="wrap_content" 8 android:layout_height="wrap_content" android:text="Normal Activity" android:textAppearance="?android:attr/textAppearanceLarge" /> <Button android:id="@+id/backButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:rotationX="-5" android:text="Back" />
first_layout.xml
<Button android:id="@+id/btn1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Start SecondActivity" android:layout_centerHorizontal="true" android:layout_marginTop="50dp"/> <Button android:id="@+id/btn2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Start ThirdActivity" android:layout_below="@id/btn1" android:layout_centerHorizontal="true" android:layout_marginTop="20dp"/>
AndroidManifest.xml
<activity android:name="com.example.activitytest02.DialogActivity" android:label="DialogActivity" android:theme="@style/Theme.AppCompat.Dialog" /> <activity android:name="com.example.activitytest02.NormalActivity" android:label="NormalActivity"/> <activity android:name="com.example.activitytest02.FirstActivity02" android:exported="true" android:label="FirstActivity02"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> 9 </activity>
运行结果为:
进入FirstActivity02.kt
点击Normal按钮
返回FirstActivity
点击Dialogact按钮
返回FirstActivity