博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android四大组件
阅读量:6096 次
发布时间:2019-06-20

本文共 1843 字,大约阅读时间需要 6 分钟。

Android应用结构分析:……。

Android应用的四大组件:

Activity,

Service,

BroadcastReceiver,

ContentResolver ,[ Intent ]。

 

 

Activity:

Activity
package com.mao.hello;import android.app.Activity;import android.os.Bundle;public class HelloActivity extends Activity {    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);    }}

创建Activity步骤:

1.创建一个Activity就是创建一个类,且该类要继承Activity;

2.需要复写其中的onCreate()方法;

3.新建的Activity要在清单文件AndroidManifest.xml文件中注册;

4.要为新建的Activity设置布局文件如main.xml

 

Activity的生命周期:

onCreate(),onStart(),onRestart(),onResume(),onPause(),onStop(),onDestory();

 

PreferenceActivity(<PreferenceScreen>选项设置)

ListActivity,TabActivity,LauncherActivity……。

启动Activity:startActivity,startActivityForResult(),复写onActivityResult()。

 

Service后台服务:

Service是一个后台运行的,没有界面的Android组件,可用于处理耗时操作。

Service不是一个线程,有自己的生命周期。

创建一个Service步骤:

(1)创建一个类,继承Service。

(2)在AndroidManifest.xml文件中配置<Serviec>

(3)复写相应的方法:

abstract IBinder onBind():该方法是Service子类必须要实现的方法.

void onCreate():当Service被创建时回调该方法.

void onStartCommand():当Service被启动时回调该方法.

void onDestroy():当Service被关闭前回调该方法.

boolean onUnbind():当Service上绑定的所有客户端都断开连接时回调该方法. 

 

BroadcastReceiver广播机制:

 1.监听广播:

Broadcast事件发生----系统自动创建对应的BroadcastReceiver实例[ 创建一个类,继承BroadcastReceiver类]--[设置action匹配Intent]--

自动触发其onReceive()方法[重写该方法]----onReceive()执行完成[10s],实例被销毁.

2.发送监听广播:

(1)创建需要启动BroadcastReceiver的Intent

(2)调用Context的sendBroadcast()或sendOrderedBroadcast()方法

(3)重写BroadcastReceiver监听的onReceive()方法[监听]

(4)[1]在AndroidManifest.xml中注册:(这种方式可实现后台全局监听):<reveiver.../><intent-filter../>

[2]代码注册:(不会在后台监听)

注册:registerReceiver(receiver, filter);

取消:unregisterReceiver(receiver);

3.Android内置了许多系统广播消息Broadcast Actions[主要用这些内置的]

<intent-filter>是过滤器,过滤匹配的Broadcast Intent.(Intent包括action和data)

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/wzmmao/archive/2012/09/16/2600152.html

你可能感兴趣的文章
【算法笔记】多线程斐波那契数列
查看>>
java8函数式编程实例
查看>>
jqgrid滚动条宽度/列显示不全问题
查看>>
在mac OS10.10下安装 cocoapods遇到的一些问题
查看>>
angularjs表达式中的HTML内容,如何不转义,直接表现为html元素
查看>>
css技巧
查看>>
Tyvj 1728 普通平衡树
查看>>
[Usaco2015 dec]Max Flow
查看>>
javascript性能优化
查看>>
多路归并排序之败者树
查看>>
java连接MySql数据库
查看>>
转:Vue keep-alive实践总结
查看>>
android studio修改新项目package名称
查看>>
深入python的set和dict
查看>>
C++ 11 lambda
查看>>
Hadoop2.5.0 搭建实录
查看>>
实验吧 recursive write up
查看>>
High-speed Charting Control--MFC绘制图表(折线图、饼图、柱形图)控件
查看>>
go test命令參数问题
查看>>
linux 搜索文本
查看>>