定时器和开机通知都没有效果,在线求助

liu584 2011-12-26 07:46:44
android2.2的虚拟机上运行,没有任何输出,谁帮忙看下问题在哪?
AndroidManifest.xml文件
<receiver android:name=".TimerReceiver" />
<receiver android:name=".BootCompletedReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

代码
class TimerReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
System.out.println("timer");
}
}

class BootCompletedReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
System.out.println("boot completed1");
if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
System.out.println("boot completed2");
}
}
}

public void init_notify_service() {
Intent intent = new Intent(this, TimerReceiver.class);
PendingIntent sender = PendingIntent.getBroadcast(this, 0, intent, 0);
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
//关机不唤醒系统的闹钟,每分钟一次
am.setRepeating(AlarmManager.RTC, System.currentTimeMillis(), 60 * 1000, sender);
}

...全文
227 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiazhiyous 2012-07-14
  • 打赏
  • 举报
回复
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
liu584 2011-12-29
  • 打赏
  • 举报
回复
定时器有效果了。System.currentTimeMillis()改成取elapsed时间就可以了。
开机启动不知道虚拟机上不知道怎么测试,回家到手机上看吧- -
liu584 2011-12-28
  • 打赏
  • 举报
回复
在手机上试了,也没效果。
liu584 2011-12-27
  • 打赏
  • 举报
回复
没人试过吗?定时器应该很常用才对啊
Mr_Su 2011-12-27
  • 打赏
  • 举报
回复
你不用静态的注册 你动态的registerReceiver试试?
liu584 2011-12-27
  • 打赏
  • 举报
回复
开机启动都不需要代码的,也收不到通知。
是不是AndroidManifest.xml文件有问题?
我看别人的代码也都是这样的啊
liu584 2011-12-27
  • 打赏
  • 举报
回复
打印肯定没问题,其他地方的输出都ok。
定时器换成这样也不行。
Intent intent = new Intent(this, TimerReceiver.class);
PendingIntent sender = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
//关机不唤醒系统的闹钟,每分钟一次
final int internal = 1000;
am.setRepeating(AlarmManager.ELAPSED_REALTIME, System.currentTimeMillis() + internal, internal, sender);

重点是开启启动那个是简单的,也不行。
Byron_ 2011-12-27
  • 打赏
  • 举报
回复
int RTC_WAKEUP Alarm time in System.currentTimeMillis() (wall clock time in UTC), which will wake up the device when it goes off.

试试 AlarmManager.RTC_WAKEUP
seayea 2011-12-27
  • 打赏
  • 举报
回复

你怎么测试的?

要先把你的apk装到虚拟器上,然后重启虚拟器。

重启模拟器可以用AVD manager,我的虚拟器上的电源按钮不好使。

不知道用这个打印来测试行不行。试试Log,或者使用startActivity启动另一个系统的或者自己的activity。
liu584 2011-12-26
  • 打赏
  • 举报
回复
这里很冷清嘛?还是账号都没盗了- -

80,360

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧