首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

android学习笔记--AlarmManager

都有两种相似的用法: (1)在指定时长后执行某项操作(2)周期性的执行某项操作 AlarmManager 包含的主要方法: // 取消已经注册的与参数匹配的定时器 void cancel(PendingIntent...对象配合Intent使用,可以定时的开启一个Activity,发送一个BroadCast,或者开启一个Service. android提供了的几种类型的闹钟: public static final...直到系统下次被唤醒才传递它,该闹铃所用的时间是相对时间,是从系统启动后开始计时的,包括睡眠时 间,可以通过调用SystemClock.elapsedRealtime()获得。...直到系统下次被唤醒才传递它,该闹铃所用的时间是绝对时间,所用时间是UTC时间,可以通过调用 System.currentTimeMillis()获得。...使用方法同RTC类型,系统值为4(0x00000004)。

72420
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Android 电量优化】电量优化 ( 使用 AlarmManager 保持 CPU 唤醒 )

    文章目录 一、AlarmManager 简介 二、使用 AlarmManager 保持 CPU 唤醒流程 ( 省电操作 ) 三、使用 WeakLock 保持 CPU 唤醒 代码示例 1、Service..., 然后继续休眠 , 可以极大降低资源消耗 ; 二、使用 AlarmManager 保持 CPU 唤醒流程 ( 省电操作 ) ---- 使用 AlarmManager 保持 CPU 处于唤醒状态 ,..., pendingIntent); 三、使用 WeakLock 保持 CPU 唤醒 代码示例 ---- 1、Service 代码示例 ---- package kim.hsl.bp; import android.app.AlarmManager...import android.os.IBinder; import android.os.SystemClock; import android.text.TextUtils; import android.util.Log...-- AlarmManager 保持 CPU 唤醒的 Service 服务 --> <service android:name=".AlarmManagerService

    1.1K00

    Android开发笔记(五十)定时器AlarmManager

    调用Timer的schedule方法,定时任务便会按照调度设置按时启动;TimerTask不能直接设置运行的次数上限,一旦启动就会持续定时运行,除非对象销毁或者调用了TimerTask的cancel方法...调用cancel方法停止定时任务后,若想重启该定时任务,只能重新声明TimerTask对象,并且重新调用schedule方法。...要想启动CountDownTimer计时,调用它的start方法即可,停止计时则调用cancel方法。...AlarmManager AlarmManager是Android提供的一个全局定时器,其使用范围要大于Timer方式。...AlarmManager常用的启动方法有两个: set : 该方法用于设置一次性定时器。第一个参数表示定时器类型,第二个参数表示任务执行时间,第三个参数表示定时任务。

    3K10

    【Android NDK 开发】JNI 方法解析 ( CC++ 调用 Java 方法 | 函数签名 | 调用对象方法 | 调用静态方法 )

    调用 Java 对象方法 ( CallXxxMethod ) IX . 调用 Java 类静态方法 ( CallStaticXxxMethod ) X . 完整代码示例 I ....调用 Java 方法流程 ---- JNI 中调用 Java 方法流程 : ① 获取 jclass 类型变量 : 调用 jclass GetObjectClass(jobject obj) 或 jclass...Android Studio 中 Java 代码编译后的 class 字节码文件位置 : 不同版本的 AS 编译后的字节码位置不同 , 建议在各自的 Module 下的 build 目录中进行文件查找...调用 Java 对象的方法 /* 调用 Java 引用对象的方法 : 要根据 返回值类型不同 , 调用不同的方法 如果返回值是 int 类型 , 那么就需要调用...CallIntMethod 方法 如果返回值是 void 类型 , 那么就需要调用 CallVoidMethod 方法 如果调用的是静态方法 , 那么需要调用

    8.5K40

    笔记58 | Android闹钟

    调度重复的闹钟 闹钟(基于AlarmManager类)给予你一种在应用使用期之外执行与时间相关的操作的方法。你可以使用闹钟初始化一个长时间的操作,例如每天开启一次后台服务,下载当日的天气预报。...Note:对于那些需要确保在应用使用期之内发生的定时操作,可以使用闹钟替代使用Handler结合Timer与Thread的方法。因为它可以让Android系统更好地统筹系统资源。...当你使用该方法时,Android系统会集中多个应用的重复闹钟同步请求,并一起触发它们。这样可以减少电量的损耗。...要取消闹钟,可以调用AlarmManager的 cancel()方法,并把你不想激活的PendingIntent传递进去,例如: // If the alarm has been set, cancel...这意味着除非应用显式地启用它,不然该接收器将不被调用。这可以防止接收器被不必要地调用。

    1.6K30

    AllJoyn+Android开发案例-android跨设备调用方法

    AllJoyn+Android开发案例-android跨设备调用方法 项目需要涉及AllJoyn开源物联网框架。...项目最终的目的实现是,跨平台的方法调用如:windows调用android,以及对于设备事件的订阅功能。...入手的步骤: 1.实现android端的跨设备方法(自定义)调用案例-java 2.实现windows端的跨设备方法(自定义)调用案例-c++ 3.实现windows端和android端的跨设备方法调用案例...-(window用C++,android用java) 4.结合实际项目实现跨平台、跨设备的方法调用和订阅功能 现阶段我们来尝试实现android端的跨设备方法(自定义)调用案例-java 上面一篇关于博客...–AllJoyn+Android开发的一般步骤,主要概念上描述了如何实现调用,这篇文章我们结合android代码实现,走一遍流程,加深理解和记忆。

    44020

    Android JNI 调用时缓存字段和方法 ID

    在 JNI 去调用 Java 的方法和访问字段时,最先要做的操作就是获得对应的类以及对应的方法 id。...事实上,通过 FindClass 、GetFieldID、GetMethodID 去找到对应的信息是很耗时的,如果方法被频繁调用,那么肯定不能每次都去查找对应的信息,有必要将它们缓存起来,在下一次调用时...但这种缓存方式显然有弊端,当多个调用者同时调用时,就会出现缓存多次的情况,并且每次调用时都要检查是否缓存过了。 初始化时缓存 在初始化时缓存,就是在类加载时,进行缓存。...具体代码如下: // 全局变量,作为缓存方法 id jmethodID InstanceMethodCache; // 初始化加载时缓存方法 id extern "C" JNIEXPORT void...id 缓存成全局变量了,这样再调用时,就不要再进行一次查找了,并且避免了多个线程同时调用会多次查找的情况。

    1.1K20

    Android 通过 JNI 访问 Java 字段和方法调用

    在前面的两篇文章中,介绍了 Android 通过 JNI 进行基础类型、字符串和数组的相关操作,并描述了 Java 和 Native 在类型和签名之间的转换关系。...方法调用 JNI 调用 Java 方法和 JNI 访问 Java 字段的步骤也大致相同, 获取 Java 对象的类 获取对应方法的 id 调用具体的方法 以调用类的实例方法和静态方法为例: 调用类的实例方法...对于不需要返回值的函数,调用 CallVoidMethod 即可,对于返回值为引用类型的,调用 CallObjectMethod 方法,对于返回基础类型的方法,则有各自对应的方法调用,比如:CallBooleanMethod...调用类的静态方法 对于调用类的静态方法和调用类的实例方法类似: private native void callStaticMethod(Animal animal); 对应 C++ 代码如下...具体的调用过程和调用类的实例方法类似,差别也只是在于调用方法名多加了一个 Static 的标识。

    1.1K10

    Unity项目中调用Android方法实现分享功能

    解决方案来源:http://resocoder.com/2017/03/31/social-sharing-tutorial-unity-android-code/ 项目中要实现分享功能,一般情况下都是外接分享...这样能快速集成到开发中,而且有的分享插件功能强大,不仅在各个平台都可以分享,而且能够在后台查看分享的数据,具有数据统计的功能,比如:Mob的社会化分享SDK,但是对于个人开发者来说,这些可能有点麻烦,但是有一种调用...Android原生的分享功能,这样就好办了,下面看下代码: using UnityEngine; using System.Collections; using System.IO; public...Application.isEditor) { AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent..."); AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent");

    2.1K30

    深入Android Runtime: 指令优化与Java方法调用

    第1次结果: 如果运行正常,结果会如下(本次测试全部在Android AOSP N上执行): this is method getValued 进一步试验 接下来,再进一步试验。...现象解释 为什么会出现这样的现象:明明调用的是getValue方法,为什么返回的是abc方法的结果呢? 要解释这个现象,我们需要对Android虚拟机执行代码的原理有一定的了解。...虚拟机通过方法名称,再从已加载cache中查找方法,如果方法没找到,就从classpath加载并resolve,最终找到对应的method。...但是运行的时候,新的Test类由于加上了一个abc的方法,android中的各种String表、method表、vtable等都是按照字母表顺序进行排序,导致abc方法排在Test方法之前,这样原先的vtable...由于vtable索引的变化,就出现了明明是调用的Test方法,可结果跑的是abc方法的奇特现象。

    2.2K70

    Android进程保活全攻略(上)

    进程被杀死的场景很多,例如被第三方应用杀死(360管家等),关机等等,不同的场景调用的系统接口也是不同,同时杀死的oom_adj值范围也是不同的,于是我将这些场景总结成了一个表格,方便大家了解:...this, KeeLiveService.class); startService(intent); super.onDestroy(); } 5) 监听一堆系统静态广播 思路:在发生特定系统事件时...系统服务 AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);...最新 Android 版本(Android N)中系统好像对账户同步这里做了变动,该方法不再有效。...本篇介绍了进程保活的一些方法,由于篇幅原因,1像素悬浮层、应用间互相拉起、心跳唤醒等方法将在下一篇进行介绍。

    1.2K50

    android 实现本地定时推送(兼容)

    目前这份代码有很多都是抄字那些博主的文章,然后稍加改动,加以整合而成 - 代码分为三个类,service类、闹钟工具类和通知工具类 首先,闹钟工具类: package com.util; import android.app.AlarmManager...>= Build.VERSION_CODES.KITKAT) { //KITKAT 19 OR ABOVE alarmManager.setExact(AlarmManager.RTC_WAKEUP...notifyByAlarmByReceiver无论是在广播还是在服务中,都可以调用这个进行立即通知 notifyByAlarm在activity中调用改方法,将开启定时通知 notifyMsg这个是真正实现通知的方法...,但并不需要外部调用 服务或者广播类及其配置 服务和广播配置一个就可以了,目前我才有的是服务的配置方法 服务的写法 import android.app.Service; import android.content.Intent...的OnCreate方法中调用: long now = System.currentTimeMillis(); long interval[] = {0,10,60,3000,6000,12000,30000,50000,60000,100000

    3.8K20

    Android14 适配之——现有 App 安装到 Android14 手机上需要注意些什么?

    setExactAndAllowWhileIdle() 方法; 4)用户指定的在大概特定时间点发生的,或者在一个时间窗口内发生的事务; 适配流程: 1)调用 alarmManager.canScheduleExactAlarms...测试代码比较简单,就是在另外一个进程中开启一个 Service,然后调用 killBackgroundProcesses 方法即可,根据打印的 Service 生命周期可看出,该 Service 确实先被杀死然后又走了一次...的设备上,调用 killBackgroundProcesses 方法可以杀死自己 App 的后台进程,但会立即重新启动。...试了下在 Android14 设备上的 A App 中调用此 API 去杀死 B App 的后台进程,确实没有任何作用;但如果是在 Android14 以下的设备上调用,确实可以杀死 B App 的后台进程...5.2 更安全的全屏通知展示 在 Android11(API level 30)上就可以调用 Notification.Builder.setFullScreenIntent 方法在锁屏上展示一些全屏的通知了

    4.6K10

    Android开发笔记(一百六十)休眠模式下的定时器控制

    针对定时器AlarmManager的滥用问题,Android从4.4开始,修改了setRepeating方法的运行规则。...正如博文《Android开发笔记(七十五)内存泄漏的处理》描述的那样,当时为了演示定时器发生内存泄漏的场景,并没有直接调用setRepeating方法,而是接力调用set方法。...// 所以setRepeating方法不保证每次工作都在指定的时间开始,         // 此时需要先注销原闹钟,再调用set方法开启新闹钟。        ...如果一定要在休眠期唤醒闹钟,就得调用setAndAllowWhileIdle代替set方法,或者调用setExactAndAllowWhileIdle代替setExact方法。...我们作为开发者,要让定时器适配Android6.0的休眠模式倒也不难,只需把下面这行的set方法代码: mAlarmManager.set(AlarmManager.RTC_WAKEUP

    3.1K20

    dotnet 判断特定进程存在方法

    本文告诉大家几个方法判断特定的进程是否存在,同时对比这些方法的性能 使用锁判断 在 C# 中判断一个进程存在的方法,如果这个进程是自己创建的,可以通过 Mutex 的方法,通过创建一个锁,然后在其他进程判断这个锁是否存在...这使用到内核的方法,性能不错 假设需要判断进程 HacurbonefeciloQicejewarrerai 是否存在,而这个进程是自己写的进程,那么可以在这个进程的主函数创建一个锁请看代码 class...如果给了命名,将会调用内核,在所有进程同步 使用锁判断进程存在将需要小心这些问题 .NET 中使用 Mutex 进行跨越进程边界的同步 - walterlv 使用进程名判断 另一个方法是通过进程名判断,...Process.GetProcesses() 然后判断里面的进程名,但是使用上面方法的性能是最高的 使用 Process 判断进程是否存在的方法性能请看 .NET 中 GetProcess 相关方法的性能...- walterlv 现在已经告诉大家两个方法判断进程是否存在,通过内核方式判断的性能比较快,请看下面性能 两个方法性能 使用标准性能测试 测试了两个方法的性能,可以看到使用内核的方式的性能很快 BenchmarkDotNet

    1.3K20
    领券