标签:context str 文件 股票 try switch 使用 put filter
startservice 方式开启服务 服务就会在后台长期运行 直到用户手工停止 或者调用StopService方法 服务才会被销毁
bindService 方式开启服务 当activity销毁的时候服务也销毁 不求同时生但求同时死
4.0以后。服务第一次启动必须有界面
//监听电话的状态 private class MyPhoneStateListenrer extends PhoneStateListener{ //当设备的状态发生改变的时候调用 @Override public void onCallStateChanged(int state, String incomingNumber) { //[3]具体判断一下 电话是处于什么状态 switch (state) { case TelephonyManager.CALL_STATE_IDLE: //空闲状态 break; case TelephonyManager.CALL_STATE_OFFHOOK://接听状态 System.out.println("开始录"); break; case TelephonyManager.CALL_STATE_RINGING: //响铃状态 System.out.println("我准备一个录音机出来 "); break; } super.onCallStateChanged(state, incomingNumber); } }//[1]获取MediaRecorder类的实例 recorder = new MediaRecorder(); //[2]设置音频的来源 recorder.setAudioSource(MediaRecorder.AudioSource.MIC); //zet //[3]设置音频的输出格式 recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); //[4]设置音频的编码方式 recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); //[5]保存的文件路径 recorder.setOutputFile("/mnt/sdcard/luyin.3gp"); //[5]准备录音 try { recorder.prepare(); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
在Android 3.1系统之后,静态广播默认会被后台回收掉的。因此,静态广播多数是不安全的,所以建议建立动态广播,并且与Service进行绑定,这样做有利于长时间的后台监听。在Activity中注册广播接收者建议在onResume()当中进行注册。在onDestroy()进行销毁。
public class ScreenReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { //获取广播事件的类型 String action = intent.getAction(); if ("android.intent.action.SCREEN_OFF".equals(action)) { System.out.println("说明屏幕锁屏了"); }else if("android.intent.action.SCREEN_ON".equals(action)){ System.out.println("说明屏幕解锁了"); } }}package com.itheima.registerbroadcast;import android.app.Service;import android.content.Intent;import android.content.IntentFilter;import android.os.IBinder;public class ScreenService extends Service { private ScreenReceiver receiver; @Override public IBinder onBind(Intent intent) { return null; } //当服务第一次启动的时候调用 @Override public void onCreate() { //在这个方法里面注册广播接收者 //[1]获取ScreenReceiver实例 receiver = new ScreenReceiver(); //[2]创建IntentFilter对象 IntentFilter filter = new IntentFilter(); //[3]添加注册的事件 filter.addAction("android.intent.action.SCREEN_OFF"); filter.addAction("android.intent.action.SCREEN_ON"); //[4]通过代码的方式注册 registerReceiver(receiver, filter); super.onCreate(); } //当服务销毁的时候调用 @Override public void onDestroy() { //当actvivity销毁的时候 取消注册广播接收者 unregisterReceiver(receiver); super.onDestroy(); }}
标签:context str 文件 股票 try switch 使用 put filter
原文地址:http://www.cnblogs.com/wwttsqt/p/6492368.html