Android_08_使用服务注册广播
来源:互联网 发布:南风知我意gl书包网 编辑:程序博客网 时间:2024/06/07 10:57
MainActivity.java
package com.itheima.register;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.view.Menu;import android.view.View;public class MainActivity extends Activity { private Intent intent;@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); intent = new Intent(this, RegisterService.class); } public void start(View v){ startService(intent); } public void stop(View v){ stopService(intent); } }
RegisterService.java
package com.itheima.register;import android.app.Service;import android.content.Intent;import android.content.IntentFilter;import android.os.IBinder;public class RegisterService extends Service {private ScreenReceiver receiver;@Overridepublic IBinder onBind(Intent intent) {// TODO Auto-generated method stubreturn null;}@Overridepublic void onCreate() {super.onCreate();//1.创建广播接收者对象receiver = new ScreenReceiver();//2.创建intent-filter对象IntentFilter filter = new IntentFilter();filter.addAction(Intent.ACTION_SCREEN_OFF);filter.addAction(Intent.ACTION_SCREEN_ON);//3.注册广播接收者registerReceiver(receiver, filter);}@Overridepublic void onDestroy() {super.onDestroy();//解除注册unregisterReceiver(receiver);}}
ScreenReceiver.java
package com.itheima.register;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;public class ScreenReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {// TODO Auto-generated method stubString action = intent.getAction();if(Intent.ACTION_SCREEN_OFF.equals(action)){System.out.println("屏幕关闭");}else if(Intent.ACTION_SCREEN_ON.equals(action)){System.out.println("屏幕打开");}}}
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="启动服务" android:onClick="start" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="停止服务" android:onClick="stop" /></LinearLayout>
清单文件:
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.itheima.register" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.itheima.register.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> <service android:name="com.itheima.register.RegisterService"></service> </application></manifest>
注:
服务必须在清单文件中注册,但广播既可以在清单文件中注册,也可以在代码中注册;
广播在代码中注册的好处就是,当我需要侦听广播的时候,我就注册,当我不需要侦听
广播的时候,我就解除注册,这样我就不会再接收到相应的广播了!而在清单文件中
注册的广播,当你开启之后,它会一直侦听;
0 0
- Android_08_使用服务注册广播
- Android_08_服务的使用总结
- 使用服务注册广播接收者
- Android-使用服务注册广播接收者
- 使用服务动态注册,销毁广播
- 使用服务注册特殊广播接收者
- Android 使用服务注册广播接收者
- 利用服务注册广播
- android服务_使用服务注册特殊的广播接收者
- Android_08_创建,启动和关闭远程服务
- 在服务中注册广播接受者
- 动态注册广播基本使用
- 代码注册广播接收者,利用广播调用服务中的方法
- 利用服务注册广播(可以灵活开关广播)
- Android初级教程使用服务注册广播接收者监听手机解锁屏变化
- Android_08_用AIDL访问远程服务中的方法
- Dubbo框架初探【用Spring配置声明暴露服务(可以使用multicast广播注册中心暴露服务地址或者使用zookeeper注册中心暴露服务地址)、加载Spring配置,启动服务】
- Dubbo框架初探【用Spring配置声明暴露服务(可以使用multicast广播注册中心暴露服务地址或者使用zookeeper注册中心暴露服务地址)、加载Spring配置,启动服务】
- mitmproxy加密数据分析
- 对象持久化的几个方案
- C# 之 管理配置文件(二)
- 构造函数
- 5-36 复数四则运算
- Android_08_使用服务注册广播
- Java进阶(三)过滤器和监听器
- STL学习笔记-入门概念
- 打印回形矩阵(C实现)
- 02_Disruptor初体验
- Struts1的bean:write标签无法输出int、float等数据类型的解决情况
- Android中保存和恢复Fragment状态的最好方法-1
- Ffmpeg框架结构解读
- 5-28 猴子选大王