一.Android基础
- MainActivity类最终继承于Activity(在以前是直接继承于,现在的版本中是先继承于AppCompatActivity,再通过一系列继承,最终到Activity)。其中的onCreate方法是重写的回调方法。回调方法即:不是我们主动调用的方法,而是系统在一定条件下自动调用的,特点是基本都以on开头。如onCreate()方法,它在当前类(Activity)对象创建的时候自动调用
- 显示页面的入口函数为setContentView(int layoutResId),函数传进一个资源ID(包括布局、图片等)。原本模板代码写的是:
setContentView(R.layout.activity_main);
这里activity_main为指定布局文件(activity_main.xml)在R所对应的变量,加载布局文件,并显示到窗口中。
注:这里布局文件都在res资源目录下
- 关于尺寸:在布局文件中,除了字体大小,其他的都以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(…):发送短信