我有一个Android活动,其中有一个EditText,当用户输入时,它会在键入的每个键上调用该服务。我认为这不是有效的,因为不仅仅是要求的电话。因此,解决方案是在那里进行某种暂停检查。
if (PauseOfThreeSeconds) {
// call the service here
}
如何感知暂停然后只调用服务?
答案 0 :(得分:1)
每次进行击键时,启动一个延迟3秒钟的处理程序。当你得到一个密钥存储区时,取消已经在队列中的runnable并启动一个像我上面提到的新的runnable。
答案 1 :(得分:0)
您应该安排一个闹钟,以便在按下每个按钮时启动服务,还可以取消之前安排的任何闹钟,这样它们也不会熄灭:
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
long alarmWaitTime = 3000;
onButtonClicked(View v){
Intent i = new Intent(AndroidAlarmService.this, MyAlarmService.class);
PendingIntent pi = PendingIntent.getService(AndroidAlarmService.this, 0, i, 0);
// Cancel any previously set alarms
alarmManager.cancel(pi);
// set a new alarm
alarmManager.set(AlarmManager.RTC, System.getTimeInMillis() + alarmWaitTime , pi);
}