Activity常用方法

只列举Activity中常用的方法,方法的参数一一列举,只简单说明方法作用

在AndroidStudio中复写方法的快捷键 command + o

一. Activity生命周期方法

生命周期评价就是对某物从产生到消亡以及消亡后所产生的效应进行全过程的评价,Activity的生命周期也就是指某个Activity从创建到销毁的整个过程中,生命周期方法就是指在这个过程中所执行的方法.
1. onCreate()
	当Activity创建时执行这个方法,也就是Activity被实例化时执行的方法,一般会在这个方法中初始化一些成员变量
2. onRestart()
	当Activity转变成后台,再回来前台时执行,也就是当Activity在被执行过onStop()方法后,再回到前台时才会执行,这个方法里面一般做和onStart()方法做同样的事情
3. onStart()
当Activity成为前台进程时执行这个方法,也就是打开的页面是当前Activity时,一般是处理一些页面打开才需要进行的操作
4. onResume()
	当Activity由不可见变可见时执行这个方法,一般处理一些处理特效
5. onPause()
	与onResume()方法对应,当Activity由可见变不可见时执行这个方法,一般处理些当Activity不可见时需要进行的操作
6. onStop()
	与onStart()方法对应,当Activity成为后台进程时执行这个方法,一般处理些当Activity不在前台需要进行的操作
7. onDestory()
	与onCreate()方法对应,当Activity被销毁时执行,一般在这个方法中释放资源,例如关闭流,cursor,

这七个方法的执行顺序是从上到下依次执行的,当需要在那个过程中做操作可以直接复写这个方法,并在方法中添加相应的操作就可以了

创建一个新的Activity分别复写这七个方法,然后在里面分别打印log,运行查看log
public class TestActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.e("test","onCreate");
    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.e("test","onStart");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.e("test","onRestart");
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.e("test","onResume");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.e("test","onPause");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.e("test","onStop");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.e("test","onDestroy");
    }
}

二. Activity状态保存方法

  • onSaveInstanceState(Bundle)
  • onRestoreInstanceState(Bundle)

当设备的配置(横竖屏、语言等)发生变化而使Activity自动销毁重建,或者Activity从前台转到后台(如,按下Home键)的时候,Activity会调用onSaveInstanceState(Bundle)方法将当前Activity的状态保存到一个Bundle变量中。这个Bundle变量与onCreate(Bundle)方法和onRestoreInstanceState(Bundle)中的Bundle参数是同一个,也就是说,后两个方法通过传入的Bundle参数还原Activity的状态。

虽然Activity的状态保存到了Bundle中,但是数据却不会自动保存到Bundle中。要想保存这些数据就需要在onSaveInstanceState手动地设置一些重启后需要的状态数据,可以直接调用该Bundle实例的putXXX方法存入额外的数据信息,然后复写onRestoreInstanceState或者onCreate()方法在方法的参数bundle中取出所保存的值设置到当前的Activity中完成Activity的恢复.

三. View相关方法

  • setContentView(View view)
    为Activity设置一个layout(布局),一般在onCreate()方法中调用这个方法为当前Activity设置布局
  • findViewById(int id)
    通过id获取当前Activity中的控件,一般取出后需要强制转换成布局中对应的控件,然后进行操作

四. 事件想关

  • onTouchEvent(MotionEvent event)
    当发生屏幕点击事件,当事件被处理结束后不需要其他控件再处理这个事件时,也就是这个事件已经被消费时,返回true
  • onKeyDown(int keyCode, KeyEvent event)
    键盘或者按钮被点击按下时执行,当事件被消费返回true
  • onKeyUp(int keyCode, KeyEvent event)
    键盘或按键被点击手抬起时执行,当事件被消费返回true
  • onBackPressed()
    当点击返回按钮时执行(系统的返回按键),当事件被消费返回true
  • onKeyLongPress(int keyCode, KeyEvent event)
    当键盘或按键被找按时执行,当事件被消费返回true
  • dispatchKeyEvent(KeyEvent event)
    事件会发,当按钮点击事件发生时,会先执行这个方法决定这个事件是否继续传递下去

三. Activity中的其他方法

  • getLayoutInflater()
    得到一个LayoutInflater对像,这个用像用于在代码中创建一个布局对象(View)
  • startActivity
    打开一个新的Activity
  • startActivityForResult(android.content.Intent, int)
    打开一个新的Activity并返回给当前Activity一些信息
  • setResult(int resultCode, Intent data)
    当调用startActivityForResult打开一个新的Activity时,在新的Activity中使用这个方法设置返回的信息
  • getSystemService(String name)
    获取系统的服务,可获取的服务
Context.WINDOW_SERVICE ("window")
  窗口管理  windowManager
  Context.LAYOUT_INFLATER_SERVICE ("layout_inflater")
  LayoutInflater
  Context.ACTIVITY_SERVICE ("activity")
  ActivityManager
  Context.POWER_SERVICE ("power")
  PowerManager
  Context.ALARM_SERVICE ("alarm")
  AlarmManager
  Context.NOTIFICATION_SERVICE ("notification")
  NotificationManager
  Context.KEYGUARD_SERVICE ("keyguard")
  KeyguardManager
  Context.LOCATION_SERVICE ("location")
  LocationManager
  Context.SEARCH_SERVICE ("search")
  SearchManager
  Context.VIBRATOR_SERVICE ("vibrator")
  Vibrator
  Context.CONNECTIVITY_SERVICE ("connection")
  ConnectivityManager
  Context.WIFI_SERVICE ("wifi")
  WifiManager 
  Context.INPUT_METHOD_SERVICE ("input_method")
  InputMethodManager

可以能过系统对应的服务设置系统功能,

  • runOnUiThread(Runnable action)
    安卓系统不允许子纯种修改UI,同时不可以在主线程中进行耗时操作,那么当子线程和主线程进行数据交互时,在子线程中使用些方法把任务发回到主线程中执行
  • getPreferences(int)
    获取缓存对象(数据存储方式中的一种)
  • getIntent()
    获取打开当前Activity的Intent对象,一般打开Activity需要携带数据时,会把这些数据放到这个Intent中
  • getFragmentManager()
    获取Fragment管理器对象,当Activity中有Fragment时需要使用些对象
  • getApplication()
    获取app的Application对象,这个对象在App被打时时创建,真到App被关闭结束
  • finish()
    结束当前Activity