2013-08-20 51 views
1

我想知道这是否是特定于我的设备(Nexus 4,Android 4.3,股票ROM),但我有一个闹钟,通过AlarmManager注册一次。触发时,设备设置为振动两秒钟。如果在设备开启时触发警报,则它会正确振动两秒钟。但是,如果在设备关闭(并拔出)时触发警报,振动开始,但直到按下电源按钮(唤醒设备)才会停止。这里是注册报警代码:当设备睡着时触发的振动不会停止

public static void registerAlarm(Context context, int uniqueId, long triggerAlarmAt) 
{ 
    Intent intent = new Intent(context, AlarmReceiver.class); 
    intent.setAction("com.myapp.ALARM_EVENT"); 
    PendingIntent pendingIntent = PendingIntent.getBroadcast(context.getApplicationContext(), uniqueId, intent, 0); 
    AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
    alarmManager.set(AlarmManager.RTC_WAKEUP, triggerAlarmAt, pendingIntent); 
} 

和接收器代码:

public class AlarmReceiver extends BroadcastReceiver 
{ 

    @Override 
    public void onReceive(Context context, Intent arg1) 
    { 
     Toast.makeText(context, "Test of alarm", Toast.LENGTH_LONG).show(); 
     Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE); 
     vibrator.vibrate(2000); 
    } 
} 

为什么这种情况正在发生或如何防止它的任何想法?

回答

1

终于想出了这一个。我的无伤大雅的'吐司'在振动之前被触发,导致振动器一直挂起,直到吐司完成。吐司直到屏幕打开才显示,这不知何故阻止了振动的完成。去掉吐司解决了我的问题,即使在关闭屏幕的情况下,振动在两秒钟后停止。

+0

请将您的问题标记为已解决 –

相关问题