package com.tencent.mm.booter;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import com.tencent.mm.sdk.platformtools.o;
import com.tencent.mm.sdk.platformtools.r;
public class MMReceivers$AlarmReceiver extends BroadcastReceiver
{
public static void k(Context paramContext)
{
long l1 = r.aag();
o.ak("MicroMsg.AlarmReceiver", "bumper comes, next=" + l1);
if (l1 > 1860000L)
return;
if (l1 < 30000L);
for (long l2 = 30000L; ; l2 = l1)
{
o.ai("MicroMsg.AlarmReceiver", "reset bumper, interval=" + l2);
AlarmManager localAlarmManager = (AlarmManager)paramContext.getSystemService("alarm");
if (localAlarmManager == null)
{
o.ah("MicroMsg.AlarmReceiver", "keep bumper failed, null am");
return;
}
PendingIntent localPendingIntent = PendingIntent.getBroadcast(paramContext, 1, new Intent(paramContext, AlarmReceiver.class).putExtra("MMBoot_Bump", true), 268435456);
localAlarmManager.set(0, l2 + System.currentTimeMillis(), localPendingIntent);
return;
}
}
public static void l(Context paramContext)
{
AlarmManager localAlarmManager = (AlarmManager)paramContext.getSystemService("alarm");
if (localAlarmManager == null)
o.ah("MicroMsg.AlarmReceiver", "stop bumper failed, null am");
PendingIntent localPendingIntent;
do
{
return;
localPendingIntent = PendingIntent.getBroadcast(paramContext, 1, new Intent(paramContext, AlarmReceiver.class).putExtra("MMBoot_Bump", true), 536870912);
}
while (localPendingIntent == null);
localAlarmManager.cancel(localPendingIntent);
localPendingIntent.cancel();
}
public static void m(Context paramContext)
{
o.ai("MicroMsg.AlarmReceiver", "keep awaker");
AlarmManager localAlarmManager = (AlarmManager)paramContext.getSystemService("alarm");
if (localAlarmManager == null)
{
o.ah("MicroMsg.AlarmReceiver", "keep awaker failed, null am");
return;
}
PendingIntent localPendingIntent = PendingIntent.getBroadcast(paramContext, 0, new Intent(paramContext, AlarmReceiver.class), 268435456);
localAlarmManager.setRepeating(0, 900000L + System.currentTimeMillis(), 900000L, localPendingIntent);
}
public static void n(Context paramContext)
{
o.ai("MicroMsg.AlarmReceiver", "stop awaker");
AlarmManager localAlarmManager = (AlarmManager)paramContext.getSystemService("alarm");
if (localAlarmManager == null)
o.ah("MicroMsg.AlarmReceiver", "keep awaker failed, null am");
PendingIntent localPendingIntent;
do
{
return;
localPendingIntent = PendingIntent.getBroadcast(paramContext, 0, new Intent(paramContext, AlarmReceiver.class), 536870912);
}
while (localPendingIntent == null);
localAlarmManager.cancel(localPendingIntent);
localPendingIntent.cancel();
}
public void onReceive(Context paramContext, Intent paramIntent)
{
boolean bool = paramIntent.getBooleanExtra("MMBoot_Bump", false);
o.aj("MicroMsg.AlarmReceiver", "[ALARM NOTIFICATION] bump:" + bool);
if (bool)
k(paramContext);
while (g.c(paramContext, "alarm"))
return;
n(paramContext);
}
}
原理,用AlarmManager 间隔12s启动一次service 没有重写service的onStartCommand
相关推荐
在Android开发中,"双进程守护"是一种关键的技术,它主要应用于消息推送服务,确保即使在用户退出应用程序后,后台服务仍然能够运行并接收推送消息。这种技术在诸如移动应用、QQ、微信、微博等社交应用中至关重要,...
3. 守护进程(daemon)模式:Rsync可以作为守护进程运行,监听特定的网络端口,等待连接请求。如`rsync -az /backup/ rsync_backup@192.168.90.41::backup/`,此命令将数据推送到远程的Rsync守护进程上。守护进程...
它包含三个主要组件:服务器、守护进程和服务端。 **ADB的功能** 1. **设备管理**:连接并管理Android设备或模拟器,列出所有已连接的设备。 2. **文件传输**:在电脑和设备之间传输文件,如安装APK、备份数据等。 ...
服务器端运行在开发者的工作站上,守护进程端运行在连接的Android设备上,客户端则包含在开发者使用的命令行工具中。通过USB或无线网络,adb能够建立开发者电脑和Android设备之间的通信桥梁。 在Android SDK ...
在Windows 7上,`adb.exe`是一个可执行文件,它作为客户端运行,连接到运行在开发者机器上的ADB服务器,服务器再通过USB或网络连接与Android设备上的守护进程通信。ADB支持多种命令,如: 1. `adb devices`:列出...
adb由三个组件组成:服务器、守护进程和客户端。服务器运行在主机(通常是PC)上,管理与设备的连接;守护进程在每个连接的Android设备上运行,处理来自服务器的请求;客户端则是在开发者机器上运行的命令行程序,...
服务器运行在开发者的电脑上,守护进程运行在设备上,客户端则可以是电脑上的命令行工具或自动化脚本。 二、adb的基本操作 1. 连接设备:使用`adb devices`命令,可以查看当前已连接的设备和它们的状态。 2. 安装...
1. **adb基本概念**:adb由三部分组成:服务器端(运行在开发机上)、守护进程(运行在设备上)和客户端(开发机上的命令行工具)。通过USB或网络连接,adb实现了开发机和设备之间的通信桥梁。 2. **adb安装与配置*...
- **ADB组成**:ADB主要由三部分构成,分别是服务器端(通常在开发者电脑上)、守护进程(在安卓设备上运行)和USB驱动(用于电脑与设备之间的连接)。 - **连接模式**:ADB支持USB连接、Wi-Fi连接以及网络连接,...
3. 运行服务:解压后,你可以找到可执行文件`memcached.exe`,双击运行,或者通过命令行以守护进程方式启动,例如:`memcached.exe -d install`来安装服务,`memcached.exe -d start`来启动服务。 4. 配置:...
关闭正在运行的ADB守护进程,当遇到ADB服务异常时,可以使用此命令来解决。 #### 8. 重启ADB服务 ```bash adb start-server ``` 启动ADB服务,当需要重新初始化ADB环境时使用。 #### 9. 获取MAC地址 ```bash adb ...