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 的用法

  • 相关阅读:
    Windows10系统中实现Android的SDK和Android studio的配置
    神经网络框架-Pytorch使用介绍
    在各个平台系统中安装Pytorch
    Jetbrain的破解
    python的collections模块的学习
    python自带的用于解析HTML的库HtmlParser
    python利用urllib和urllib2抓取百度贴吧的页面程序并下载下来在本地
    Windows下多个版本的python的使用(粘贴其他人的博客只用于自己学习,如有侵权直接删帖)
    线程同步的几种方法
    事务隔离级别
  • 原文地址:https://www.cnblogs.com/jicheng1014/p/2301852.html
Copyright © 2011-2022 走看看