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

原文地址:https://www.cnblogs.com/jicheng1014/p/2301852.html