热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

后台服务运行示例

1、编写MainActivity.java类packagecom.example.callstatuslintener;importandroid.os.Bundle;impor

1、编写MainActivity.java类

package com.example.callstatuslintener;import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//开启服务Intent intent=new Intent(this, PhoneStatusService.class);startService(intent);}}

View Code

2、编写PhoneStatusService.java类

/*** */
package com.example.callstatuslintener;import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;/*** 长期后台运行的组件,如果用户不手动关闭,不会停止的** 2013-12-6*/
public class PhoneStatusService extends Service {/* (non-Javadoc)* @see android.app.Service#onBind(android.content.Intent)*/@Overridepublic IBinder onBind(Intent intent) {// TODO Auto-generated method stubreturn null;}@Overridepublic void onCreate() {// TODO Auto-generated method stubsuper.onCreate();System.out.println("服务被创建了");//监视用户电话状态的变化//电话管理器 电话管理服务TelephonyManager tm=(TelephonyManager) getSystemService(TELEPHONY_SERVICE);//监听手机的通话状态的变化tm.listen(new MyPhoneStatusLinstener(), PhoneStateListener.LISTEN_CALL_STATE);}private class MyPhoneStatusLinstener extends PhoneStateListener{@Overridepublic void onCallStateChanged(int state, String incomingNumber) {switch (state) {case TelephonyManager.CALL_STATE_IDLE: //空闲状态,没有通话没有响铃break;case TelephonyManager.CALL_STATE_RINGING: //响铃状态System.out.println("发现来电号码:"+incomingNumber);if ("5566".equals(incomingNumber)) {System.out.println("挂断电话");}break;case TelephonyManager.CALL_STATE_OFFHOOK: //通话状态break;}super.onCallStateChanged(state, incomingNumber);}}@Overridepublic void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();System.out.println("服务被销毁了……");}}

View Code

3、注册服务AndroidManifest.xml


package&#61;"com.example.callstatuslintener"android:versionCode&#61;"1"android:versionName&#61;"1.0" >sdkandroid:minSdkVersion&#61;"8"android:targetSdkVersion&#61;"17" /><applicationandroid:allowBackup&#61;"true"android:icon&#61;"&#64;drawable/ic_launcher"android:label&#61;"&#64;string/app_name"android:theme&#61;"&#64;style/AppTheme" ><activityandroid:name&#61;"com.example.callstatuslintener.MainActivity"android:label&#61;"&#64;string/app_name" >

View Code

 demo下载

转:https://www.cnblogs.com/hyzhou/p/3461586.html



推荐阅读
author-avatar
HoerenRegen
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有