按默认排序 | 显示最新评论 | 回页面顶部共有2个评论 发表评论»
-
rigortek 回答于 2012-09-11 15:49系统起来后就周期性的发送广播,有必要么?这得不停消耗资源。
再者service反复被调用
onStart有无问题?系统起来后
能不能在改进为这样?
启动Alarmreceiver,service再killAlarmreceiver,service在被kill时,启动Alarmreceiver,如此循环。 -
当空皓月 回答于 2013-12-09 20:28
真机测试,重启手机,收不到广播啊,怎么回事?
没有打印任何东西啊
public class BootBroadcast extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
System.out.println("BootBroadcast 收到!");
if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED))
{
System.out.println("BootBroadcast 进入条件语句!");
Intent intent2=new Intent(context, AlarmReceiver.class);
intent.setAction("my.alarm.action");
PendingIntent sender = PendingIntent.getBroadcast(context, 0, intent2, 0);
long firsttime = SystemClock.elapsedRealtime();
System.out.println("firsttime:"+firsttime);
AlarmManager mAlarmManager=(AlarmManager)context.getSystemService(context.ALARM_SERVICE);
//10s一个周期,不停的发送广播
mAlarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firsttime, 10*1000, sender);
}
}<receiver android:name="com.interview.broadcast.BootBroadcast"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter >
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
Android应用后台自动启动与周期性执行技术解析
本文深入探讨了如何在Android应用中实现开机启动与后台服务的自动周期性执行,通过使用BroadcastReceiver、AlarmManager、PendingIntent等核心组件,详细介绍了从开机事件监听到服务自动启动及周期性唤醒的技术细节。文章提供了完整代码示例,包括BootBroadcast、Alarmreceiver、DaemonService等关键类的实现,以及Manifest文件配置,旨在帮助开发者理解和实践后台服务的自动化管理。


3372

被折叠的 条评论
为什么被折叠?



