复习:servlet的生命周期
------------------------------------------------------------
Activity的生命周期:
当Activity创建的时候会调用OnCreate()
当Activity启动时会调用OnStart()
当Activity中的布局完全显示时会调用OnResume()
当Activity被遮挡的时会调用OnPause(),OnStop()
当Activity再次被显示的时候会调用OnRestart(),OnStart(),OnResume()
当Activity直接被干掉的时候,会调用OnPause,OnStop,OnDestroy();
手机横竖屏切换Activity的处理
手机横屏会重新从onCreate()方法启动一次
Tips:Ctrl+F12切屏
手机竖屏会重新从onCreate()启动两次(输入法导致的问题)
解决横竖屏带来的问题
在Activity配置文件里加上下面的属性
设置隐藏键盘,设置方向改变不启动,横竖屏不重新启动
android:configChanges=" orientation|keyboardHidden“
Activity保存临时的数据
当Activity被系统回收时调用,保存数据
onSaveInstance(Bundle savedInstanceState)
当Activity被系统回收再重新启动时调用,读取数据。(Bundle)
onRestoreInstance(Bundle outState)
Activity里面事件的处理
触摸事件
onTouchEvent()
键盘按下
onKeyDown()
键盘弹起
onKeyUp()
键盘长按
onKeyLongPresss()
键盘重复点击
onKeyMultiple()
//重写触摸事件
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
int action = event.getAction();
float x= event.getX() ;
flaot y= event.getY();
return super.onTouchEvent(event);
上课案例
MainActivity.java
<span style="font-size:10px;">public class MainActivity extends Activity {
Button btn1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn1 = (Button)findViewById(R.id.btn1);
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,OtherActivity.class);
startActivity(intent);
}
});
System.out.println("OnCreate()---------------");
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch(event.getAction()){
case MotionEvent.ACTION_DOWN:
float x = event.getX();
float y = event.getY();
System.out.println(x+"----"+y);
break;
case MotionEvent.ACTION_UP:
System.out.println("抽你一嘴巴.....");
break;
}
return super.onTouchEvent(event);
}
@Override
protected void onStart() {
System.out.println("onStart()---------------");
super.onStart();
}
@Override
protected void onRestart() {
System.out.println("onRestart()---------------");
super.onRestart();
}
@Override
protected void onResume() {
System.out.println("onResume()---------------");
super.onResume();
}
@Override
protected void onPause() {
System.out.println("onPause()---------------");
super.onPause();
}
@Override
protected void onStop() {
System.out.println("onStop()---------------");
super.onStop();
}
@Override
protected void onDestroy() {
System.out.println("onDestroy()---------------");
super.onDestroy();
}
/**
* 当系统回收时会调用该方法来保存数据
* 参数1:Bundle对象(存储数据)
*/
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putString("name", "张三");
super.onSaveInstanceState(outState);
}
/**
* 当系统再次显示被回收的Activity时,会调用该方法来获取数据
* 参数1:Bundle对象(存储数据)
*/
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
String name = savedInstanceState.getString("name");
System.out.println(name+"----------------");
super.onRestoreInstanceState(savedInstanceState);
}
}</span>
<span style="font-size:10px;"><activity
android:name="com.ryan.lsn3_14_2.MainActivity"
android:label="@string/app_name"
android:configChanges="orientation|keyboardHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity></span>