天天看点

安卓开发-学习笔记

一.Android基础

  1. MainActivity类最终继承于Activity(在以前是直接继承于,现在的版本中是先继承于AppCompatActivity,再通过一系列继承,最终到Activity)。其中的onCreate方法是重写的回调方法。回调方法即:不是我们主动调用的方法,而是系统在一定条件下自动调用的,特点是基本都以on开头。如onCreate()方法,它在当前类(Activity)对象创建的时候自动调用
  2. 显示页面的入口函数为setContentView(int layoutResId),函数传进一个资源ID(包括布局、图片等)。原本模板代码写的是:

这里activity_main为指定布局文件(activity_main.xml)在R所对应的变量,加载布局文件,并显示到窗口中。

注:这里布局文件都在res资源目录下

  1. 关于尺寸:在布局文件中,除了字体大小,其他的都以dp作为单位,字体大小的单位用sp

二.四大组件及相关

四大组件包括:activity、service、contentprovider、broadcast receiver

1. Activity

定义:用来提供一个能让用户与之交互的界面

请求源:手机屏幕

生命周期包括:

  onCreate()

  onStart()

  onResume()

  onPause()

  onStop()

  onRestart()

  onDestroy()

1.1 Intent和IntentFilter的理解

  • Intent(意图对象)是Activity、Service和BroadcastReceiver这三个组件之间进行通信的信使
  • Intent还可以携带数据
1.1.1 Intent的分类
安卓开发-学习笔记

举例:比如分享图片或者文章时,系统会列出分享目标(包括QQ、微信好友、微信朋友圈等),不确定的跳转即为隐式意图。

1.1.2 IntentFilter-----意图过滤器
  • 在配置Activity时,可以为Activity指定一个IntentFilter配置
  • 如果你的Activity希望其他应用可以访问到,需要配置<intent-filter>
  • 如果想启动其他应用的界面(Activity),那么必须使用隐式意图,并且需要在目标界面配置<intent-filter>

举例:我们手机桌面系统也是一个Activity,并且对目标程序(桌面上的程序图标–一个个Activity)配置了隐式意图,这样就实现了由桌面Activity(launcher)跳转打开其他的应用Activity。配置代码如下:

<activity
	android:name=".MainActivity"
	android:label="@string/app_name">
	<!--让当前Activity称为主页面Activity-->
	<intent-filter>
		<action android:name="android.intent.action.MAIN" />
		<category android:name="android.intent.category.LAUNCHER" />
	</intent-filter>
</activity>
           
1.1.3 相关API
  • Intent:意图

    Intent(Context packageContext,Class<?> cls):用于创建显式意图对象(其中Class为显式指定的Activity的Class)

    Intent(String action):用于创建隐式意图对象

    putExtra(String name,Xxx value):保存额外数据

    Xxx getXxxExtra(String name):获取额外数据

    setData(Uri data):设置有特定格式的uri数据

  • Activity:活动

    startActivity(Intent intent):一般启动Activity

    startActivityForResult(int reqCode,Intent intent):带回调启动Activity

    onActivityResult(int reqCode,int resultCode,Intent data):回调方法

    setResult(int resultCode,Intent data):设置要返回的结果

    finish():结束当前Activity

    getIntent():得到启动Activity的意图

  • Activity生命周期方法

      onCreate()

      onStart()

      onResume()

      onPause()

      onStop()

      onRestart()

      onDestroy()

  • View:代表视图的根基类

    setOnClickListener(OnClickListener listener):设置点击监听

    setOnLongClickListener(OnLongListener listener):设置长按监听

  • SmsManager:发送短信的工具类

    static SmsManager getDefault():得到当前对象

    sendTextMessage(…):发送短信