安卓一些接口使用

发布于:2025-04-01 ⋅ 阅读:(17) ⋅ 点赞:(0)

一、异步任务类

 (一)概念

    异步任务是开启线程后台运行,调用方法,更新数据给前台。

    前台需要实现一个监听器方便将后台执行结果更新到界面中。

 

  (二)主要类

     AsyncTask 异步类

    Handler 处理类

 

  (三)使用方法

     1、将任务描述在AsyncTask类的子类对象中。

     2、实现一个监听器,触发消息,更新前台界面。

     3、开启异步任务,设置监听器。

 

  (四)后台发消息方法

    1、后台任务发消息给队列,保证顺序,也不会丢失。

    sendMessage() 发消息

   2、监听器的监听方法监听队列中的消息。

   handleMessage()

 

二、目录

 (一)安卓项目的主要目录

   1、/src目录:存放Activity的子类和其他类的源文件。

   2、/res目录: 存放资源文件。

   3、/values目录: 存放资源文件

   4、drawable目录: 存放图形和图像文件。


  说明:自定义的资源文件一般存放在res目录下;可以定义字符串,图片,颜色。

 

 (二)引用资源文件

   第一种:在活动的类文件中用R静态类引用

  语法:

    R.属性名

支持的属性:

R.layout.布局文件名

R.id.标识名

R.drawable          图形

R.font           字体

R.style          样式

R.string         文本

案例:

使用项目下/layout目录中的布局文件my.xml:

 

    R.layout.my

  第二种:在活动的XML描述文件中

主要用法:

@目录名                           @代表类路径下的res目录,后面是哪个目录名。

案例:

@drawable/图片名字                     指定图片

@+id/标识名                              指定某个组件

 (三)主要文件

  1、国际化文件:

            每个地方用的代号来表示,中国是zh_CN 

格式:values-zh-rCN

 

  2、关键配置文件:

AndroidManifest.xml                    核心配置文件。

 

  3、活动(Activity)对应的界面描述文件

  每个活动对应一个界面描述文件;是一种XML文件。

 格式:       名字.xml

 

 (四)AndroidManifest.xml文件的细节

    可以配置多个活动。

 

   主要标签:

   1、使用<application> 定义程序

    主要属性:

         icon 定义图标

         label 定义程序名

         theme 定义主题

         allowBackup 是否允许备份

 

    2、可以有多个<activity>标签定义活动

   属性:

       name   活动的全限定类名

       label   活动的标签名

 

   3、<activity>标签的子标签<intent-filter>

       <intent-filter>的子标签:

             <action>标签:android.intent.action包下的常量:

                      MAIN 主要活动,第一个显示。

            <category>标签:android.intent.category包下:

                      LAUCHAER 是桌面快捷方式

        <intent-filter>标签是定义消息的类别的。定义了很多的类别。

 

   (四)自定义主题和样式

     1、定义样式

<resources>

    <style>

        <item>代号</item>

        <value>值</value>

    </style>

</resources>

   2、定义字符串:

<string>

        <item>代号</item>

        <value>值</value>

</string>

 

 3、配置服务

<service  android:name= 服务名></service>

 4、声明权限

<uses-permissions andoid:name=权限名  ></uses-permissions>

 注意:分清楚哪些是系统规定的,哪些是用户自定义的。

 

三、活动

 (一)活动的概念

     1、活动代表一个显示界面,可以设置监听器来监听动作。

     2、一个安卓应用程序可以由很多的活动组成。

     3、需要定义活动的执行顺序,活动与活动要建立联系(类似于很多网页用超链接建立联系)。

     4、定义某个活动是主要活动,然后通过一些事件来触发其他活动。

 

   (二)活动的实现方法

      1、实现活动需要创建一个子类继承Activity类。

      2、实现下列的生命周期方法。

void onCreate() 创建

void onStart() 开始

void onStop()  停止

void onDestroy() 销毁

void onResume() 恢复

void onPause() 中断

void onKeyUp() 监听屏幕释放

void onKeyDown() 监听按下屏幕

void onTouchEvent() 监听屏幕触发

注意:一般不需要重写所有的方法,只需要重写需要的。

 

 (三)细节

    系统内部需要栈来组织程序中活动的调用顺序。

    视图组件是设置在活动内部,和活动进行联系。

    视图可以用Java代码来设置,也可以用XML文档来描述。

 

 (四)设置活动的视图

    调用setViewContext()方法设置视图的上下文。

         传值:   R.layout.活动的xml文件名字

 

四、查找视图和更新

  (一)组件的关系

     组件大多数是View和ViewGroup类的子类。

   (二)查找组件

      用标识符找视图对象。

findViewById()   用ID找到视图对象

 

View类的方法:

setText(String)    更新视图组件的文本。

父类引用变量指向子类对象。

 

 组件的属性:

     src   : 设置图片路径。

     hint : 设置输入框的提示文本

 

五、代码布局视图

  1、创建布局对象。

      例如:创建LineaerLayout类型的对象,代表线性布局。

   2、创建子组件对象。

      例如:Button类对象。

   3、调用布局对象的addView()方法来添加子组件。

     addView()方法可以多次调用,添加每个子组件。

   4、调用setViewContent()方法来设置布局管理器对象。

 

注意:布局管理器内部也可以嵌套组件和布局管理器。

 

六、内容提供和发布

 (一)主要类介绍

  ContentProvider类: 对外发布内容,给其他程序使用。

  ContentResolver类:内容发现者,通过一些地址来发现内容。

  ContentObserver类:内容观察者,不断地持续观察内容有没有发生改变,如果发生改变,调用注册者的回调方法,通知那些注册者,内容发生改变。

 

  (二)内容的描述格式

    描述内容的地址格式:

    content://机构名/路径

 

  (三)使用方法

    实现对应的接口,重写方法就能做到。

    有一系列的增删改变方法来操作内容发布者的内容。

 

七、短信对象

  (一)概念

     短信能开启活动,后台服务,开启广播这三个组件。

     短信对象,可以在那些组件对象之间传递消息。

   (二)短信类:

 Intent          消息对象

  (三)使用方法

用构造方法构造对象

 

public Intent()

传参:

    1、需要Context对象,用getApplicationContext()方法获取。

    2、活动的class对象。

 

   (四)Intent短信对象的一些设置方法:

setClassName(包名,全路径名);

setAction(动作的类名)

addCategory(目录名)

   (五)操作消息方法:

putExtra() 发送消息

getStringExtra() 获取消息

 

  (六)主要方法

startActivity(Intent)     用短信来开启活动

 

startService() 开启服务

 

bindService() 绑定服务。

  (七)开启广播

    1、开启广播监听器,实现BroadcastReciever类的子类对象,实现方法onRecieve。

    2、调用方法sendBroadcast() 发送广播

    也可以调用方法sendOrderedBroadcast() 发送排序的广播

   

   (八)细节

   开启活动的方式:

       第一种、明确指定活动类。显示意图。

       第二种、不指定活动类,只指定行动和类别目录;

        可以将所有同类型的应用放在一起给用户选择:例如自带的照相机,浏览器等等。

        隐藏意图: 当不指定活动类,只调用指定的action指令和category类别,如果系统中出现多个相同指令和类别的活动,弹出选择框给用户选择。

 

  案例:

      action属性设为开启照相机捕获的行动(安卓官方定义的):android.media.action.IMAGE_CAPTURE

      category属性设置为:android.intent.category.DEFAULT 默认类别。

 

八、组件事件监听

 (一)第一种

   1、用findViewById()方法获得组件对象。

   2、用该对象的setOnClickListener()  添加点击监听器对象。

   3、可以监听鼠标,键盘等事件。

 

 (二)第二种

    1、在活动的xml中使用 οnclick="监听方法名"

    要求:监听方法需要接收View类型的对象。

 

 

九、广播

  (一)定义

     广播适合让多个活动实例接收同一个消息,适合一对多通信模式。

 

  (二)广播方式

      有普通的和过滤类型的。

 

      普通的: 接收指定的所有广播。

      过滤类型的:可以指定收听次序。

 

 (三)使用方法

    1、创建接收器

          继承BroadLestener接口,实现onRecieve()方法。

 

     2、注册接收器。

          有两种方式,常驻和非常驻。

          需要在核心配置文件xml中配置<intent-filter>标签。

 

        注册广播的方法:

registerBroadListener()   注册广播监听器

 

unregisterBroadListener()   取消注册广播监听器

 (四)注意

     需要其他活动发出广播,才能被接收者接收。

    系统可能会发出广播;有些应用程序启动时间有先后。

 

十、后台服务

  (一)概念

    服务指的是在后台运行的程序。

    需要继承Service类来描述服务的行为。

 

  (二)有两类方法

     启动服务和绑定服务。

 

 (三)服务的生命周期:

onCreate() 创建

onStart() 启动

onBind() 绑定

onUnbind() 取消绑定

onDestroy() 销毁。

 (四)服务启动方法

   1、创建服务类Service的子类对象

   2、调用startService()方法启动服务。

       启动服务一般需要Context类型的对象。

 

 (五)启动方式运行的服务如何退出:

   1、可以是服务调用自己的stopSelf()方法。

   2、由其他线程调用服务对象的stopService()方法。

      重要参数: IBinder

 

 (六)绑定式服务

    当所有的活动全部取消服务绑定,那么退出服务执行。

bindSercice() 绑定服务

unbindService() 取消绑定

(七)注册和配置:

    在AndroidManifest.xml文件中配置服务类。

 

十一、组件和服务通信

   服务可以在后台运行。

   活动可以控制服务的行为,如启动,停止,调用某个方法等等。

   (一)活动和服务如何通信

       Activity活动和服务通信,用一些Context类的方法启动服务,调用服务。

   

    (二)开启服务

     在Service类的onStartCommand()方法中描述服务逻辑。

 

    (二)高级的服务使用

      服务和服务之间通信,需要用绑定的方式。

      种类:

      第一种、本地服务通信

         1、在一个进程内部实现Service接口的onBind()方法,返回IBinder类的子类实例。

         2、用IBinder类来通信,调用服务的内部方法。

         3、用ServerConnection对象来通信,来获取和服务的连接,监听连接服务完成时,做出操作。

 

    第二种、使用其他应用的服务:

         1、需要使用AIDL语言来通信。

         2、用官方的aidl.exe程序自动生成一个文件。

         3、使用Stub类的子类。

         4、调用描述和定义的方法。

         AIDL文件是一个接口,和Java接口类似,没有权限修饰符,只有方法接口定义。

 

十二、使用输入流和输出流

  (一)支持的存储方式

     1、内部存储路径,程序私有

          可以是文件,或者数据库。

          路径:

/data/data/包名/文件名

     2、外部存储,可以共享。

        例如:储存卡,某些目录。

 

      3、网络远程存储

          需要通信协议,需要服务端程序,开启端口监听,操作磁盘

 

      4、内容提供者

         相当于一个服务器,对外开放资源路径。

          其他程序使用内容消费者进行信息消费。

 

  (一)使用内部存储

InputStream  openFileInput(文件路径)            打开输入流

 

OutputStreram  openFileOutput(文件路径,模式)            打开输出流

     内部存储是应用程序私有,卸载后删除。

    其他应用程序操作当前应用程序文件,需要创建时设置开放权限。

     注意:文件的路径是在移动设备的:data/data/包名/files/

 

 (二)使用外部存储。

    存放在外部存储空间的数据,可以被其他应用程序共享。

    外部存储一般是SD卡。

   方法:

      1、使用Enviroment的getExternalStorageDirectory() 获得外部设备的File目录对象。

      2、使用getExternalStorageState() 获取设备状态。

      3、通过Java自带的输入输出流来操作。

    注意:需要在配置中声明权限。

 

  (三)使用内容提供者和内容发现者。

   适合应用程序之间信息共享。 

   数据存在内存中,退出运行时丢失。

 

   (五)使用网络存储。

    适合通过网络来远程存储和传输,容量可以很大。

    用Socket接口或者HttpURLConnection类来调用HTTP接口;

 

   (六)使用自带的SQLLite

      1、继承SQLiteOpenHelper类,重写onCreate()方法。

      2、创建子类对象,调用getWritableDatabase()获得SQLiteDatabase对象,用来更新。 

        提供有insert() update() delete() 三个方法。

        有原始的execSQL()方法执行SQL语句。

        调用getreadableDatabase()用来查询。

        查询有 query()和rawQuery() 两种方法。

        查询后返回Cusor对象来获取结果。

 

 

 

 


网站公告

今日签到

点亮在社区的每一天
去签到