zoukankan      html  css  js  c++  java
  • android监控上传小demo之第一步 自启动运行

    有个小计划练手,就是做一个拍照,之后自动上传到某个服务器上的小demo

    思路是这样的,

    拍照的时候加一个标志位表示这个照片要同步到网络上且还未上传。

    之后系统定期检查是否有上传任务,若有,则执行上传,若没有,则等待至下一次检测点

    ok,转化为程序思路,具体如下,

    为实现自启动,需要捕获我们的设备运行信息,可以使用BroadcastReceiver这个东西

    但是我们启动的是alarmManager 

    为什么不直接用上传的Service,之后在Service 内部实现一个循环等待的功能?

    因为android机制当中,里面的wait 是指你在active 的时候的时间,如果程序本身是inactive或者被pause了的话,等待的时间就会不准。同时,如果一直监听,则service是不会被回收的,这点很不爽。

    下面就是这个demo的第一步,捕获系统开机,自动运行程序

    android认为这个事情比较重要,所以要在mainfest 中授权,

    授权方式如下

    在manifest 根节点下直接添加权限节点

    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

    image

    在有了权限之后,我们还要写一个receiver指定谁接受这个东西

    照例,我们需要像activity一样的在mainfest 里指定他  

    同时这里因为要捕获系统的启动,所以说需要在intent-filter设置一下  详情如下所示

    image

    之后OnBootReceiver 的代码也很简单,

    package info.atpking.cityHelper;

    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.util.Log;

    public class OnBootReceiver extends BroadcastReceiver {
        private static final String LOGTAG = "ATPKINGLOG";
        @Override
        public void onReceive(Context context, Intent intent) {
            Log.v(LOGTAG,"我已随系统启动了哇亲");
            // 在这里接下来我们要开启AlarmManager 了
        }

    }

    之后就可以在虚拟机上跑了。

    注意,虚拟机需要首先加载一次这个程序之后才能随系统开机运行

    直接点运行,出来新建项目时默认的activity后,这个时候系统已经将其receiver 注册了

    关掉虚拟机,之后再启动虚拟机,我们就可以在LogCat 上看到我们的开机运行了。

    image

    下一篇,介绍AlarmManager 的用法

  • 相关阅读:
    来自Jakob Jenkov的Jackson教程
    Linux查看某个端口的连接数
    Linux查看某个进程的线程
    Jackson反序列JSON为实体对象出现:no String-argument constructor/factory method to deserialize from String value的问题
    软路由OpenWrt教程收集(插件开发教程,opkg安装软件教程)
    软路由系统收集
    Linux防止“rm -rf /”误删除
    Mac 10.12原生方法对NTFS分区进行读写的配置
    Linux下进行Web服务器压力(并发)测试工具http_load、webbench、ab、Siege、autobench简单使用教程(转)
    微服务实施Spring Boot/Spring Cloud中踩过的坑(转)
  • 原文地址:https://www.cnblogs.com/jicheng1014/p/2301852.html
Copyright © 2011-2022 走看看