我的思路是:程序里注册个广播接收器,接收开机启动的广播,当程序接到该广播后,写入文件SharedPreferences,当我们程序需要用到开机时间时,再从SharedPreferences中读取信息。
废话不多说,下面上源码。
AndroidManifest.xml
Java代码
<receiver android:name=".receiver.BootUpReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<receiver android:name=".receiver.BootUpReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
Receiver文件,记录开机时间。
Java代码
public class BootUpReceiver extends BroadcastReceiver {
private SharedPreferences sharedPreferences;// 配置文件
private Editor editor;// 更改配置文件的类实例
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
sharedPreferences = context.getSharedPreferences("这是存储文件的名字",
Context.MODE_PRIVATE);
editor = sharedPreferences.edit();
editor.putLong("存储时间的key", new Date().getTime());
editor.commit();// 别忘了提交哦
}
}
}
public class BootUpReceiver extends BroadcastReceiver {
private SharedPreferences sharedPreferences;// 配置文件
private Editor editor;// 更改配置文件的类实例
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
sharedPreferences = context.getSharedPreferences("这是存储文件的名字",
Context.MODE_PRIVATE);
editor = sharedPreferences.edit();
editor.putLong("存储时间的key", new Date().getTime());
editor.commit();// 别忘了提交哦
}
}
}
读取开机时间
Java代码
/**
* Description : 获取开机的时间
*
* @return String 秒数
*
*/
public static long getUpTime(Activity context) {
SharedPreferences sharedPreferences=context.getSharedPreferences("这是存储文件的名字", Context.MODE_PRIVATE);
long seconds= sharedPreferences.getLong("存储时间的key", new Date().getTime());
return seconds;
}
分享到:
相关推荐
为了获取开机时间,需要查看系统日志或使用特定的系统接口,但这通常需要root权限。 接下来,我们讨论如何在Android开机完成后接收到广播。Android系统提供了`BroadcastReceiver`类,用于监听系统广播事件,包括...
确保音乐文件大小适中,以免延长开机时间。 步骤三:创建自启动服务 创建一个Android服务应用,该服务会在系统启动时自动运行并播放音乐。你需要编写一个简单的Android应用,包含一个BroadcastReceiver监听ACTION_...
在Android应用开发中,"开机自启动"是一个常见的需求,特别是在需要后台服务持续运行或者希望应用程序在用户开机后立即可用的情况下。本知识点主要讲解如何利用Android的广播接收器(BroadcastReceiver)来实现在...
1. **获取系统源码**:首先,你需要获取到全志A64 Android 6.0 v2.1的系统源码,这通常可以从设备制造商或全志官方获取。 2. **定位问题代码**:使用代码编辑器或IDE来查找涉及开机广播白名单的代码,可能在广播...
在Android系统中,开机引导界面(Boot Animation)是用户开机时最先看到的视觉元素,它在设备启动过程中呈现,展示了品牌的特色和系统的加载状态。这个界面不仅能够提升用户体验,还能传达品牌价值,因此,定制一个...
通过上述步骤,你可以监控和测试不同设置下的开机时间,找出最适合的优化方案。不过,如果你的目标是恢复到早期Linux启动时的文字输出界面,那么这可能需要更深入的系统级别的修改,涉及到内核配置和启动脚本的调整...
1. **权限请求**:从Android 6.0(Marshmallow)开始,部分敏感权限需要在运行时动态获取,包括`ACCESS_BACKGROUND_SERVICES`。如果应用需要在后台运行,可能需要请求此权限。 2. **后台限制**:Android系统为了...
系统时间是Android应用看到的时间,它可以在设备开机或休眠状态下被改变。RTC时间则存储在硬件RTC芯片中,通常在设备关机后仍能保持。在大多数情况下,我们所说的“修改系统时间”是指更改系统时间,但如果需要在...
6. **用户隐私和权限**:考虑到Android的隐私政策,如果应用涉及到监控用户行为(如监测睡眠时间),必须告知用户并获取他们的同意。不要侵犯用户隐私,遵守相关法规。 综上所述,实现“android 开机自启动+后台...
- **定义**:Service是Android四大组件之一,用于执行长时间运行的操作,如后台网络请求或音乐播放等。 - **特点**:Service没有用户界面,通常在后台默默工作。 **2. BroadcastReceiver简介** - **定义**:...
5. **替换原生启动器**:将生成的Bootanimation.zip文件复制到Android系统的 `/system/media` 目录下,通常需要获取root权限才能操作。如果系统原有Bootanimation.zip,记得先备份原文件。 6. **重启设备查看效果**...
总结,实现“android 定时关机 重启”功能,开发者需要深入理解Android系统的工作原理,获取必要的权限,并编写适当的代码和服务来处理开机和定时操作。同时,安全性和用户体验是开发过程中不可忽视的重要因素。
2. 开机自启动Service:Service是Android系统中用于在后台运行的组件,它可以长时间运行而不与用户交互。将Service配置为开机自启动可以确保应用的核心服务在设备启动时就开始运行,例如持续监听网络、同步数据或...
总的来说,实现Android开机自启动程序的关键在于创建BroadcastReceiver,正确配置Intent Filter,并获取必要的权限。同时,需要考虑不同Android版本的兼容性和电池优化策略,以确保应用能够在合适的时机启动。
在Android系统中,实现开机自启动服务是一项常见的需求,它使得应用能够在用户开机后自动运行特定的任务,如数据同步、消息推送等。本篇将详细讲解如何创建并配置开机自启动服务。 首先,我们需要理解`android....
本文旨在通过深入剖析Android系统的开机启动模式源码,帮助读者理解在特定场景(如低电量启动与USB插入启动)下系统的运作原理。 #### 二、低电量启动流程分析 **1. 关键逻辑描述** 当设备处于关机状态时,用户长...
本篇将详细介绍如何在Android环境下实现这一功能,并提供一个简单的示例——"WIFIAutoConnectionDemo"。 首先,我们要了解Android中的`WifiManager`类。`WifiManager`是Android提供的用于管理WiFi连接的核心类,它...
3. **权限获取**:在Android系统中,开机向导可能需要访问网络、存储等敏感权限,因此需要正确处理权限申请。 4. **事件响应**:处理用户在向导中的操作,如点击按钮、输入信息等,确保流程的正确进行。 5. **服务...
5. **权限管理**:在Android 6.0及以上版本,应用需要在运行时请求权限,包括ACCESS_FINE_LOCATION或ACCESS_COARSE_LOCATION来获取位置信息。确保在代码中适当地请求并处理这些权限。 6. **后台运行限制**:从...