1、Activity简介
(1)Activity用于提供可视化用户界面的组件,可以与用户进行交互来完成某项任务
(2)所有的Activity都直接或间接继承了它的父类Context
(3)Activity类中常用的方法
a.openContextMenu(View view):开启上下文菜单
b.setResult(int resultCode):返回数据给上一个Activity,Activity与Activity进行数据交换的时候使用的
c.startActivityForResult(Intent intent,int requestCode):携带数据并跳转Activity
d.finish():结束当前Activity
(4)Activity类中关于生命周期常用的方法
a.onStop():用于停止Activity
b.onDestory():用于销毁Activity
c.onResume():将Activity由暂停状态恢复使用
d.onStart():将Activity由停滞状态恢复使用
(5)Activity类中关于页面交互常用的方法
a.onKeyDown(int keyCode,KeyEvent event):键盘按键按下时的动作事件处理方法
b.onKeyUp(int keyCode,KeyEvent event):键盘按键抬起时的动作事件处理方法
c.onTouchEvent(MotionEvent event):监听屏幕的触摸事件处理方法
2、Activity生命周期的四个状态
(1)运行状态:activity可见、焦点在该activity上可与用户进行交互
(2)暂停状态:该activity部分可见,无法与用户进行交互
(3)停止状态:activity完全不可见
(4)销毁状态:activity主动调用finish(),或者被系统回收
3、Activity生命周期的三个循环
(1)整个生命周期:
onCreate()--onStart()--onResume()===(运行状态)---onPause()===(暂停状态)---onStop()===(停止状态)----onDestory()===(销毁状态)
(2)可见生命周期
onCreate()--onStart()--onResume()===(运行状态)---onPause()===(暂停状态)---onStop()===(停止状态)--onStart()--onResume()===(运行状态)---onPause()===(暂停状态)---onStop()===(停止状态)
(3)前台生命周期
onCreate()--onStart()--onResume()===(运行状态)---onPause()===(暂停状态)--onResume()===(运行状态)---onPause()===(暂停状态)
4、创建activity步骤
(1)创建相应的activity java类,并直接或间接继承activity父类
public class MyLifeCycle extends AppCompatActivity
(2)在AndroidManifest.xml中配置activity组件
<activity android:name=".MyLifeCycle">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
(3)创建activity对应的xml界面
(4)重写onCreate()方法,将java类与xml页面进行绑定
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_mylife); }
5、Activity四种启动模式
(1)standard:Activity默认启动模式,在该模式下,每次启动activity都会创建新的对象
(2)singleTop
a.如果该activity已经处于栈顶,启动该activity时,不会新创建对象,而是调用onNewIntent方法,复用栈顶的activity
b.如果该activity不是处于栈顶,当启动该activity时,会新创建activity对象
(3)singleTask
判断是否在指定名称的栈中,若否,则创建新的栈,并创建新的activity放入其中,若是
a.如果activity处于栈顶,则复用该activity
b.如果activity不是处于栈顶,将该activity之上的所有activity销毁
(4)singleInstance:在该模式下启动activity,自动新建一个栈,并将该activity放入栈中
(5)启动模式使用场景
a.standard:最普通的一种模式,无需特殊注意
b.singleTop:在当前activity需要启动当前页面时,推送通知栏、登录界面
c.singleTask:保持一个栈中只有一个activity实例,home页面,电商中的订单确认界面、付款界面
d.singleIntance:整个系统的单例模式,锁屏键、来电显示等系统应用
6、Assets原生资源访问
(1)创建assets文件夹
(2)将资源拷贝到assets文件夹内
(3)在页面定义展示图片的ImageView组件
(4)在后台进行资源读取并设置资源展示
//获取assets文件下指定资源输入流 InputStream inputStream = getResources().getAssets().open("theGirl.jpg"); Bitmap bitmap = BitmapFactory.decodeStream(inputStream); show_assets.setImageBitmap(bitmap);
7、Android常用的定义资源的xml文件有四种:
(1)strings.xml:用于定义文本内容的资源文件
(2)colors.xml:用于定义颜色设置的资源文件
(3)dimens.xml:用于定义尺寸的资源文件
(4)styles.xml:用于定义主题和样式的资源文件
8、访问索引资源
(1)string资源的使用
a.资源定义在strings.xml中
<resources> <string name="app_name">ResourceDemo</string> <string name="use_in_xml">在xml页面引用</string> <string name="use_in_java">在java代码调用</string> </resources>
b.在xml中调用
<TextView android:layout_width="match_parent" android:layout_height="wrap_parent" android:text="@string/use_in_xml"/>
c.在java代码中调用
<TextView
android:id="@+id/tv_show_mess"
android:layout_width="match_parent"
android:layout_height="wrap_parent"/>
TextView show_mess; show_mess = findViewById(R.id.tv_show_mess); show_mess.setText(R.string.use_in_java);
(2)color资源的使用
a.资源定义在color.xml中
<resources> <color name="use_in_xml">#f8f61004</color> <color name="use_in_java">#bb0202fh</color> </resources>
b.在xml中调用
<TextView android:layout_width="match_parent" android:layout_height="wrap_parent" android:text="xml设置颜色" android:textColor="@color/use_in_xml"/>
c.在java代码中调用
<TextView android:id="@+id/tv_set_color" android:layout_width="match_parent" android:layout_height="wrap_parent" android:text="java设置颜色"/>
TextView show_color; show_color= findViewById(R.id.tv_set_color); show_color.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { show_color.setTextColor(getResources().getColor(R.color.use_in_java)); } });
(3)dimen资源的使用
a.资源定义在dimens.xml中
<resources> <dimen name="text_size_xml">30sp</dimen> <dimen name="text_size_java">50sp</dimen> </resources>
b.在xml中调用
<TextView android:layout_width="match_parent" android:layout_height="wrap_parent" android:text="页面设置字体大小" android:textSize="@dimen/text_size_xml"/>
c.在java代码中调用
<TextView android:id="@+id/tv_set_texSize" android:layout_width="match_parent" android:layout_height="wrap_parent" android:text="java设置代码字体大小"/>
TextView set_texSize; set_texSize= findViewById(R.id.tv_set_texSize; set_texSize.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { set_texSize.setTextSize(getResources().getDimension(R.dimen.text_size_java)); } });
9、AndroidManifest.xml清单文件中通常包含以下几项信息
(1)声明应用程序的包名
(2)描述应用程序组件
(3)声明应用程序拥有的权限
10、AndroidManifest.xml
(1)manifest
a.xmls:android定义android命名空间
b.package指定本应用的包名
(2)application
a.android:allowBackup是否允许备份应用
b.android:icon设置应用图标
c.android:label定义应用的名称
d.android:theme设置应用主题
(3)uses-permission权限说明
<!--访问网络权限--> <uses-permission android:name="android.permission.INTERNET" />