android的广播事件
2015-08-29 15:44
316 查看
在安卓中有广播事件,比如打电话可以在打电话的时候把电话号码进行修改可以做短信、电话的窃听等
做广播事件的主要步骤:
1.建一个类继承BroadcastReceiver;实现它的receive方法;
2.在清单文件中加入配置;
代码例:
创建类的代码:
清单文件的配置代码:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.jit.ipdail.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<span style="color:#ff6666;"><span style="color:#ff0000;background-color: rgb(255, 255, 255);"><receiver android:name="com.jit.ipdail.OutCallDail">
<intent-filter>
<action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
</intent-filter>
</receiver></span>
</span>
</application>
广播事件也可以自己定义。
例:
在两个模块之间要通信,模块A发生了一个事情,这时候需要模块B做出一个相应的动作就可以用自定义的广播事件。
自己先定义一个项目A在A中定义一个按钮,点击事件就是发送一个广播,再定义一个项目B,B 就可以根据A的广播事件做出相应的动作。
步骤:
定义项目A:在点击事件中设置广播
定义项目B:在项目B中定义一个类继承BroadcastReceiver,实现里面的onreceive方法,再在配置文件中(清单文件)配置,
实现简单代码:
A中的点击事件:
注意:sendBroadcast方法可以有多个 这个是无序的,sendOrderedBroadcast是有序的,sendOrderedBroadcast多个参数的是有序的 而且可以指定哪个实现BroadcastReceiver的类是必须走的,不可以被拦截。
在B中的代码:
实现自己的一个类:
在清单文件中的配置:
在A中的配置有序无序主要是可以与B中的清单文件配置有关,在intent-fileter 标签内有一个属性android:priority就是判断优先级的 优先级越大越先走,
还有一大主键service (服务)
创建一个服务的步骤:
1.先创建一个自己的类继承service,实现里面的onCreate和onDestroy方法(onCreate方法是服务开启的时候调用的;onDestroy方法是服务销毁时调用的)
2.在清单文件中进行配置service
3.在activity中开启服务;
实现的简单代码:
继承service的类
清单文件的配置代码:
启动服务的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
<span style="color:#ff0000;">
Intent intent = new Intent(this, MyService.class);
startService(intent);</span>
}
四大组件:特定 都是要在清单文件配置
activity 界面 。用户交互的UI
service 后台运行的没有界面,长期后台存在, 提高应用程序进程的优先级
broadcast receiver 接受系统的广播事件, 自定义一些广播, (可以通过代码的方法注册,也可以通过清单文件注册)
content provider 把自己私有的数据,暴露给别的应用程序。
做广播事件的主要步骤:
1.建一个类继承BroadcastReceiver;实现它的receive方法;
2.在清单文件中加入配置;
代码例:
创建类的代码:
public class OutCallDail extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub //System.out.println("111111111"); String number = getResultData(); SharedPreferences sp = context.getSharedPreferences("config", context.MODE_PRIVATE); String ipnumber = sp.getString("ipnumber", ""); String newnumber = ipnumber + number; setResultData(newnumber); } }
清单文件的配置代码:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.jit.ipdail.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<span style="color:#ff6666;"><span style="color:#ff0000;background-color: rgb(255, 255, 255);"><receiver android:name="com.jit.ipdail.OutCallDail">
<intent-filter>
<action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
</intent-filter>
</receiver></span>
</span>
</application>
广播事件也可以自己定义。
例:
在两个模块之间要通信,模块A发生了一个事情,这时候需要模块B做出一个相应的动作就可以用自定义的广播事件。
自己先定义一个项目A在A中定义一个按钮,点击事件就是发送一个广播,再定义一个项目B,B 就可以根据A的广播事件做出相应的动作。
步骤:
定义项目A:在点击事件中设置广播
定义项目B:在项目B中定义一个类继承BroadcastReceiver,实现里面的onreceive方法,再在配置文件中(清单文件)配置,
实现简单代码:
A中的点击事件:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void click(View view){ Intent intent = new Intent(); intent.setAction("cn.jit.xxx"); sendBroadcast(intent, null); }
注意:sendBroadcast方法可以有多个 这个是无序的,sendOrderedBroadcast是有序的,sendOrderedBroadcast多个参数的是有序的 而且可以指定哪个实现BroadcastReceiver的类是必须走的,不可以被拦截。
在B中的代码:
实现自己的一个类:
public class MyBroadCast extends BroadcastReceiver { @Override public void onReceive(Context arg0, Intent arg1) { // TODO Auto-generated method stub Toast.makeText(arg0, "接受到了。。。", 0).show(); } }
在清单文件中的配置:
<receiver android:name="com.jit.b.MyBroadCast"> <intent-filter > <action android:name="cn.jit.xxx"> </action> </intent-filter> </receiver>
在A中的配置有序无序主要是可以与B中的清单文件配置有关,在intent-fileter 标签内有一个属性android:priority就是判断优先级的 优先级越大越先走,
还有一大主键service (服务)
创建一个服务的步骤:
1.先创建一个自己的类继承service,实现里面的onCreate和onDestroy方法(onCreate方法是服务开启的时候调用的;onDestroy方法是服务销毁时调用的)
2.在清单文件中进行配置service
3.在activity中开启服务;
实现的简单代码:
继承service的类
public class MyService extends Service { @Override public IBinder onBind(Intent arg0) { // TODO Auto-generated method stub return null; } @Override public void onCreate() { // TODO Auto-generated method stub System.out.println("被创建000"); super.onCreate(); } @Override public void onDestroy() { // TODO Auto-generated method stub System.out.println("被销毁,,,"); super.onDestroy(); } }
清单文件的配置代码:
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.jit.jianting.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <span style="color:#ff0000;"> <service android:name="com.jit.jianting.MyService"> <intent-filter > </intent-filter> </service></span> </application>
启动服务的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
<span style="color:#ff0000;">
Intent intent = new Intent(this, MyService.class);
startService(intent);</span>
}
四大组件:特定 都是要在清单文件配置
activity 界面 。用户交互的UI
service 后台运行的没有界面,长期后台存在, 提高应用程序进程的优先级
broadcast receiver 接受系统的广播事件, 自定义一些广播, (可以通过代码的方法注册,也可以通过清单文件注册)
content provider 把自己私有的数据,暴露给别的应用程序。
相关文章推荐
- Android应用程序用户界面(五)
- 最新的全网速下载Android Sdk更新与下载
- android service与activity进行通信
- Android中消息系统模型和Handler Looper
- Android-JNI的简单使用
- android平台led开发之内核硬件驱动层
- Android手机在不同分辨率情况下字体自适应大小
- android 返回键
- Android-ViewPager使用示例(二)
- [转]Android布局文件layout.xml的一些属性值
- Android Studio基本配置
- Android Studio基本配置
- material design 的android开源代码整理
- Gradle, Android and the ANDROID_HOME SDK location
- 用Gradle 构建你的android程序
- Android RecyclerView 使用完全解析 体验艺术般的控件
- Android定义生命周期的优点
- XX日历简单逆向分析
- Android-Fragment的onActivity诡异Bug
- Android几个关于Gesture的问题