我想让我的应用程序在后台运行
我有一个应用程序将用户的位置发送到我们的服务器
我有以下代码:
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    LocationManager locationManager;
    String context = Context.LOCATION_SERVICE;
    locationManager = (LocationManager)getSystemService(context);

    Criteria criteria = new Criteria();
    criteria.setAccuracy(Criteria.ACCURACY_FINE);
    criteria.setAltituderequired(false);
    criteria.setbearingrequired(false);
    criteria.setCostAllowed(true);
    criteria.setPowerRequirement(Criteria.POWER_LOW);
    String provider = locationManager.getBestProvider(criteria,true);

    updateWithNewLocation(null);

    locationManager.requestLocationUpdates(provider,(10*60*1000),10,locationListener);
}
private final LocationListener locationListener = new LocationListener() {
    public void onLocationChanged(Location location) {
      updateWithNewLocation(location);
    }

    public void onProviderdisabled(String provider){
      updateWithNewLocation(null);
    }

    public void onProviderEnabled(String provider){ }
    public void onStatusChanged(String provider,int status,Bundle extras){ }
  };
  public void updateWithNewLocation(Location location) {


        if (location != null) {
            Dbhelper helper = new Dbhelper(this);
            final sqliteDatabase db = helper.getWritableDatabase();
            long time = System.currentTimeMillis();
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
            final String curTime = df.format(time);
            final double lat = location.getLatitude();
            final double lng = location.getLongitude();
            final double alt = location.getAltitude();
            System.out.println(lat);
            System.out.println(lng);
            System.out.println(alt);
            db.execsql("INSERT INTO location (longitude,latitude,altitude,tgl_buat) VALUES " +
            "('"+lng+"','"+lat+"','"+alt+"','"+curTime+"')");
            db.close();
            /*Timer timer = new Timer();
            timer.scheduleAtFixedrate(new TimerTask(){
                @Override
                public void run(){
                    db.execsql("INSERT INTO location (longitude,tgl_buat) VALUES " +
                            "('121.2149012','-6.217837','0.0','2012-05-07 10:20:01')");
                    db.close();
                }
            },10*60*1000,10*60*1000);*/

          } 
       }

我希望我的应用程序在后台运行.我希望它在手机开机时自动启动

解决方法

对于您的问题,一个非常简单的答案是使用 Service.它将允许您在后台执行各种任务,并且是您静默地将您的位置发送到服务器的最佳选择.

阅读this答案寻求帮助.

android – 让应用程序在后台运行的更多相关文章

  1. android – 让应用程序在后台运行

    我想让我的应用程序在后台运行我有一个应用程序将用户的位置发送到我们的服务器我有以下代码:我希望我的应用程序在后台运行.我希望它在手机开机时自动启动解决方法对于您的问题,一个非常简单的答案是使用Service.它将允许您在后台执行各种任务,并且是您静默地将您的位置发送到服务器的最佳选择.阅读this答案寻求帮助.

  2. android – 如何让应用程序在后台运行?继续收集数据?

    在底部更新我编写了一个记录用户位置,当前速度,平均速度和最高速度的应用程序.我想知道如何使应用程序执行以下操作:>防止屏幕在屏幕上打开时关闭>如果用户打开另一个应用程序或返回主屏幕,接到电话等,应用程序应继续收集数据(或者每次更新位置时将所有数据写入数据库会更好吗?并且可能有一个按钮来表示何时开始和停止收集数据?

  3. android – 在网络和GPS提供商之间切换

    我想实现一个locationListener,它将根据可用性在网络和GPS提供商之间切换.例如,如果GPS未启用,我希望它使用网络,但一旦GPS打开,我希望它停止监听来自网络的位置更新,并开始从GPS听.同样地,一旦GPS被关闭,我希望它从网络开始监听更新.那可能吗?SubquestionGPS是否与网络一样快提供位置修复?

  4. php – 如何将Propel Criteria编译为SQL

    如何编译PropelCriteria以清除sql?

  5. php – Yii – 如何打印由findAll使用的SQL

    我有以下代码从db获取一些记录是否可以获取findAll使用的sql?

  6. JHipster:使用标准过滤实体 – 用于Angular客户端方法

    我最近开始使用JHipster–感谢这个梦幻项目的维护者!使用组件代码按以下行填充数组:我刚刚在GitLabhere中使用这种方法创建了一个实际工作的示例,其中一些表单字段过滤了测试单实体单片应用程序.所以,我的问题是:>我是否错过了使用当前JHipster版本执行此操作的预期方式?>req.query在request-utils.ts的当前实现中的用途是什么?>这个区域预计会在即将推出的版本中发生变化吗例如,前端搜索字段是否可以按启用ElasticSearch的应用程序的方式自动生成?

  7. php – Symfony中关联实体集合的高级过滤

    如果我有一个关联的实体是一个集合,你在获取时有什么选择?例如假设我有一个带有此定义的$view实体:我希望得到与实体相关的所有版本,如下所示:这将返回一个集合.大.但是有可能采取该集合并按标准过滤它,例如比某个日期更新?

  8. angularjs – Angular-ui.router:更新URL,无需刷新

    )我已经尝试了很多方法,目前有这个html在控制器中:而且,我认为发生的是我触发$stateProvider代码:一个可能的线索是,如果我加载例如下面的代码,http://afmnew.herokuapp.com/criteria/cuisine/italian然后您浏览时视图刷新,而如果我加载http://afmnew.herokuapp.com/,则不会刷新,但不会更改URL更新。

  9. 是否存在类似于IOS重大变更位置服务的Android服务或应用程序?

    IOS重大变化定位服务可以很好地为我的应用程序监控位置变化,同时保持电池寿命.是否有类似的Android服务或是否有第三方应用程序可用?

  10. 数组 – AngularJS自定义过滤器函数

    在我的控制器,我想过滤一个对象的数组。这些对象中的每一个都是可以包含字符串以及列表的映射我尝试使用$filter格式,但我不知道如何访问我的函数中的数组的单个元素。所以我需要访问$filter这种方式只。p=preview像你发现的,filter接受接受项的谓词函数按项目从数组。所以,你只需要根据给定的标准创建一个谓词函数。在本示例中,criteriaMatch是返回谓词的函数函数匹配给定的标准。

随机推荐

  1. bluetooth-lowenergy – Altbeacon库无法在Android 5.0上运行

    昨天我在Nexus4上获得了Android5.0的更新,并且altbeacon库停止了检测信标.似乎在监视和测距时,didEnterRegion和didRangeBeaconsInRegion都没有被调用.即使RadiusNetworks的Locate应用程序现在表现不同,一旦检测到信标的值,它们就不再得到更新,并且通常看起来好像信标超出了范围.我注意到的一点是,现在在logcat中出现以下行“B

  2. android – react-native动态更改响应者

    我正在使用react-native进行Android开发.我有一个视图,如果用户长按,我想显示一个可以拖动的动画视图.我可以使用PanResponder实现这一点,它工作正常.但我想要做的是当用户长按时,用户应该能够继续相同的触摸/按下并拖动新显示的Animated.View.如果您熟悉Google云端硬盘应用,则它具有类似的功能.当用户长按列表中的任何项目时,它会显示可拖动的项目.用户可以直接拖

  3. android – 是否有可能通过使用与最初使用的证书不同的证书对其进行签名来发布更新的应用程序

    是否可以通过使用与最初使用的证书不同的证书进行签名来发布Android应用程序的更新?我知道当我们尝试将这样的构建上传到市场时,它通常会给出错误消息.但有没有任何出路,比如将其标记为主要版本,指定市场中的某个地方?解决方法不,你不能这样做.证书是一种工具,可确保您是首次上传应用程序的人.所以总是备份密钥库!

  4. 如何检测Android中是否存在麦克风?

    ..所以我想在让用户访问语音输入功能之前检测麦克风是否存在.如何检测设备上是否有麦克风.谢谢.解决方法AndroidAPI参考:hasSystemFeature

  5. Android – 调用GONE然后VISIBLE使视图显示在错误的位置

    我有两个视图,A和B,视图A在视图B上方.当我以编程方式将视图A设置为GONE时,它将消失,并且它正下方的视图将转到视图A的位置.但是,当我再次将相同的视图设置为VISIBLE时,它会在视图B上显示.我不希望这样.我希望视图B回到原来的位置,这是我认为会发生的事情.我怎样才能做到这一点?编辑–代码}这里是XML:解决方法您可以尝试将两个视图放在RelativeLayout中并相对于彼此设置它们的位置.

  6. android – 获得一首歌的流派

    我如何阅读与歌曲相关的流派?我可以读这首歌,但是如何抓住这首歌的流派,它存放在哪里?解决方法检查此代码:

  7. android – 使用textShadow折叠工具栏

    我有一个折叠工具栏的问题,在展开状态我想在文本下面有一个模糊的阴影,我使用这段代码:用:我可以更改textColor,它可以工作,但阴影不起作用.我为阴影尝试了很多不同的值.是否可以为折叠文本投射阴影?

  8. android – 重用arm共享库

    我已经建立了armarm共享库.我有兴趣重用一个函数.我想调用该函数并获得返回值.有可能做这样的事吗?我没有任何头文件.我试过这个Android.mk,我把libtest.so放在/jni和/libs/armeabi,/lib/armeabi中.此时我的cpp文件编译,但现在是什么?我从objdump知道它的名字编辑:我试图用这个android.mk从hello-jni示例中添加prebuild库:它工作,但libtest.so相同的代码显示以下错误(启动时)libtest.so存在于libhello-j

  9. android – 为NumberPicker捕获键盘’Done’

    我有一个AlertDialog只有一些文本,一个NumberPicker,一个OK和一个取消.(我知道,这个对话框还没有做它应该保留暂停和恢复状态的事情.)我想在软键盘或其他IME上执行“完成”操作来关闭对话框,就像按下了“OK”一样,因为只有一个小部件可以编辑.看起来处理IME“Done”的最佳方法通常是在TextView上使用setonEditorActionListener.但我没有任何Te

  10. android – 想要在调用WebChromeClient#onCreateWindow时知道目标URL

    当我点击一个带有target=“_blank”属性的超链接时,会调用WebChromeClient#onCreateWindow,但我找不到新的窗口将打开的新方法?主页url是我唯一能知道的东西?我想根据目标网址更改应用行为.任何帮助表示赞赏,谢谢!

返回
顶部