一、新建一个Activitylifetest项目,允许Android Studio帮我们自动创建活动和布局,并且勾选Luancher Activity来将创建的活动设置为主活动。
可以参考: http://www.cnblogs.com/aqyl/p/6605116.html
项目与主活动创建完成
二、分别创建2个子活动NormalActivity和DialogActivity
右击com.example.activitylifetest包–》New–》Activity–》Empty Activity,新建Normal Activity,布局名为normal_layout。然后使用同样方法创建DialogActivity
三、修改normal_layout.xml和dialog_layout.xml文件。以normal_layout举例,现象一个是normal,一个是dialog.
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="This is Dialog activity"
/>
四、NormalActivity和Dialog中的代码我们保持默认就可以。这两个活动一个是普通的活动,一个是对话框的活动。为什么代码相同活动却不相同呢?在哪里有体现出将活动设置成对话框的呢?我们是需要在AndroidManifest.xml文件中进行设置的。
<activityandroid:name=".NormalActivity"/> //普通活动
<activityandroid:name=".Dialog"
android:theme="@android:style/Theme.Dialog"></activity> //对话框式活动
这里是两个活动的注册代码,但是Dialog的代码有些不同,我给它使用了一个android:theme属性,这是用于给当前活动指定主题的,Android系统内置有很多主题可以选择,当然我们也可以定制自己的主题。这里让它使用了对话框式的主题
五、修改activity_activitylifetset.xml,重新定制主活动的布局,修改里面的代码:
<Button
android:id="@+id/start_normal_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Start NormalActivity"/>
<Button
android:id="@+id/start_dialog_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Start DialogActivity"
android:layout_below="@+id/start_normal_activity"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"/>
添加了2个button,一个启动NormalActivity一个启动DialogActivity
六、最后修改Activitylifetest中的代码:
package com.example.activitylifetest;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
publicclassActivitylifetestextendsAppCompatActivity{
publicstaticfinalString TAG="Activitylifetest";
@Override
protectedvoid onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_activitylifetest);
Button startNormalActivity=(Button) findViewById(R.id.start_normal_activity);
Button startDialogActivity=(Button) findViewById(R.id.start_dialog_activity);
startNormalActivity.setOnClickListener(newView.OnClickListener(){
@Override
publicvoid onClick(View v){
Intent intent=newIntent(Activitylifetest.this,NormalActivity.class);
startActivity(intent);
}
});
startDialogActivity.setOnClickListener(newView.OnClickListener(){
@Override
publicvoid onClick(View v){
Intent intent=newIntent(Activitylifetest.this,Dialog.class);
startActivity(intent);
}
});
}
@Override
protectedvoid onStart(){
super.onStart();
Log.d(TAG,"onStart");
}
@Override
protectedvoid onResume(){
super.onStart();
Log.d(TAG,"onResume");
}
@Override
protectedvoid onPause(){
super.onStart();
Log.d(TAG,"onPause");
}
@Override
protectedvoid onStop(){
super.onStart();
Log.d(TAG,"onStop");
}
//@Override
protected void onDestory(){
super.onStart();
Log.d(TAG,"onDestory");
}
//@Override
protected void onReStart(){
super.onStart();
Log.d(TAG,"onReStart");
}
}
在onCreate()方法中,我们分别为2个按钮注册了点击事件。然后在Activity的7个回调方法打印了一句话,这样就可以通过观察日志的方式来更直观的理解活动的生命周期