Questão
Para criar um alarme, podemos trabalhar com Intents de maneira semelhante ao que foi visto até o momento. Como ação, utiliza-se, basicamente, a família action_set_alarm, para especificar os detalhes do despertador, por exemplo. Nesse momento, a desenvolvedora precisará, então, desenvolver a Intent.
- Assinale a alternativa que apresenta o desenvolvimento necessário de forma correta.
a) public void criaAlarme(int hora, int minutos) { Intent intent = new Intent(AlarmClock.ACTION_SET_ALARM) .putExtra(AlarmClock.EXTRA_HOUR,hora) .putExtra(AlarmClock.EXTRA_MINUTES,minutos); }
b) public void criaAlarme(int hora, int minutos) { Intent intent = new Intent(AlarmClock.ACTION_SET_ALARM) .putExtra(AlarmClock.EXTRA_HOUR, hora) .putExtra(AlarmClock.EXTRA_MINUTES, minutos); if (intent.resolveActivity(getPackageManager()) != null) { startActivity(intent); } }
c) public void criaAlarme(int hora, int minutos) { Intent intent = new Intent(AlarmClock.ACTION_SET_ALARM) .putExtra(AlarmClock.EXTRA_MESSAGE, mensagem) .putExtra(AlarmClock.EXTRA_HOUR, hora) .putExtra(AlarmClock.EXTRA_MINUTES, minutos); if (intent.resolveActivity(getPackageManager()) != null) { startActivity(intent); } }
d) Intent intent = new Intent(AlarmClock.ACTION_SET_ALARM) .putExtra(AlarmClock.EXTRA_HOUR, hora) .putExtra(AlarmClock.EXTRA_MINUTES, minutos);
e) public void criaAlarme(int hora, int minutos) { Intent intent = new Intent(AlarmClock.ACTION_SET_ALARM) if (intent.resolveActivity(getPackageManager()) != null) { startActivity(intent); } }
B
A alternativa correta é a B. Ela cria um Intent para definir um alarme com a ação AlarmClock.ACTION_SET_ALARM
e adiciona as horas e minutos como extras. Além disso, verifica se há uma atividade que pode lidar com o Intent antes de chamar startActivity(intent)
, o que é uma boa prática para evitar que a aplicação falhe caso não haja um aplicativo de relógio disponível.
A alternativa A não chama startActivity(intent)
, então o alarme não seria realmente configurado.
A alternativa C tenta adicionar uma mensagem extra AlarmClock.EXTRA_MESSAGE
, mas não foi especificado um parâmetro mensagem
, o que causaria um erro.
A alternativa D não está dentro de um método e não chama startActivity(intent)
, então não configuraria o alarme.
A alternativa E cria o Intent, mas não adiciona as horas e minutos como extras, então o alarme não seria configurado corretamente.