2010.12.27——— android service

参考:http://apps.hi.baidu.com/share/detail/23409277

需求:在应用开启时,启动一个service 不断的获得当前的gps数据

代码:

service:

package com.huitu.project;import java.io.IOException;import org.apache.http.client.ClientProtocolException;import com.huitu.util.HttpUtil;import android.app.Service;import android.content.Context;import android.content.Intent;import android.location.Location;import android.location.LocationListener;import android.location.LocationManager;import android.os.Bundle;import android.os.IBinder;public class GPSService extends Service{private String user_id;@Overridepublic IBinder onBind(Intent intent) {// TODO Auto-generated method stubLocationManager locationManager; locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);user_id = intent.getStringExtra("user_id");String provider = LocationManager.GPS_PROVIDER;Location location = locationManager.getLastKnownLocation(provider);updateMap(location,user_id);LocationListener ll = new LocationListener(){public void onLocationChanged(Location location) {updateMap(location,user_id);}public void onProviderDisabled(String provider) {}public void onProviderEnabled(String provider) {}public void onStatusChanged(String provider, int status,Bundle extras) {}         };locationManager.requestLocationUpdates(provider, 500, 5,ll);return null;}@Overridepublic void onCreate() {// TODO Auto-generated method stubsuper.onCreate();}@Overridepublic void onStart(Intent intent, int startId) {// TODO Auto-generated method stubsuper.onStart(intent, startId);}private void updateMap(Location location,String user_id){System.out.println("gps run");double lat=0.0;double lng = 0.0;if (location != null) { lat = location.getLatitude(); lng = location.getLongitude();}String url = HttpUtil.BASE_URL+"android_addGPS_M.action?lat="+lat+"&lng="+lng+"&user_id="+user_id;try {HttpUtil.getHttpResponse(HttpUtil.getHttpPost(url));} catch (ClientProtocolException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}



清单文件:

<service android:name=".GPSService"></service>



调用:

Intent service = new Intent(this,GPSService.class);service.putExtra("user_id", result[1]);intent.putExtra("user_id", result[1]);intent.putExtra("org_id", result[2]);//startService(service);bindService(service, null, BIND_AUTO_CREATE);



总结:

  • startService:应用退出了 仍然运行 比如说mp3的播放
  • bindService 应用退出 也就结束了


更多相关文章

  1. Android(安卓)Binder进程间通信-ServiceManager代理对象的获取过
  2. Android(安卓)和 H5 互调
  3. android intent和intent action大全
  4. android 模拟器横竖切换
  5. Android应用程序组件Content Provider在应用程序之间共享数据的
  6. Android与Javascript交互之入门
  7. Android多媒体开发高级编程
  8. Android各个版本API的区别
  9. Android(安卓)回调详解及简单实例

随机推荐

  1. Android项目命名规范
  2. Android(安卓)App Crash之后如何禁止Acti
  3. 科大讯飞语音实现Android拨号之二
  4. 图形,文件处理
  5. Linux 创建桌面启动器教程
  6. android studio 集成zxing二维码,条形码扫
  7. Android(安卓)淘宝滑动条,淘宝菜单滑动条;
  8. android 自定义弹出框AlertDialog
  9. Android启动Activity的标准Action和标准C
  10. Android中的Adapter简单介绍