0
Je fais une application audioplayer dans Android. J'essaie de faire sleeptimer, mais ça ne marche pas. Je souhaite que l'application se ferme automatiquement lorsqu'elle respecte l'heure définie. Je l'ai considéré plus de 5 jours ... S'il vous plaît aidez-moiSleeptime Android avec broadcastreceiver
Voici ma partie d'activité.
String items[] = {"타이머 없음", "1분", "3분", "5분", "10분", "15분", "20분", "30분", "40분", "1시간", "2시간"};
AlertDialog.Builder ab = new AlertDialog.Builder(this);
ab.setTitle("SleepTimer");
ab.setSingleChoiceItems(items, 0,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
try {
int broadcastUniqId = 0x1123; // uniq id 설정
Intent intent = new Intent("action_alarm_notification");
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), broadcastUniqId, intent, 0);
AlarmManager alarmManager = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE);
alarmManager.cancel(pendingIntent);
pendingIntent.cancel();
int intervalTime = 0;
switch (whichButton) {
case 0:
intervalTime = 0;
break;
case 1:// 1분
intervalTime = 60000;
break;
case 2:// 3분
intervalTime = 180000;
break;
case 3:// 5분
intervalTime = 300000;
break;
case 4:// 10분
intervalTime = 600000;
break;
case 5:// 15분
intervalTime = 900000;
break;
case 6:// 20분
intervalTime = 1200000;
break;
case 7:// 30분
intervalTime = 1800000;
break;
case 8:// 40분
intervalTime = 2400000;
break;
case 9:// 1시간
intervalTime = 3600000;
break;
case 10:// 2시간
intervalTime = 7200000;
break;
}
if (intervalTime > 0) {
pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), broadcastUniqId, intent, 0);
alarmManager.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+ intervalTime, pendingIntent);
}
} catch (Exception e) {
e.printStackTrace();
}
dialog.dismiss();
}
});
ab.show();
C'est BroadcastReceiver
public class AlarmBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("action_alarm_notification")) {
System.exit(0);
android.os.Process.killProcess(android.os.Process.myPid());
}
}
}
Ceci est manifeste.
<receiver
android:name=".AlarmBroadcastReceiver"
android:enabled="true"
android:exported="false">
<intent-filter>
<action android:name="action_alarm_notification"/>
</intent-filter>
</receiver>
Je veux dire ne fonctionne pas BroadcastReceiver. –
Utilisation: Intention intention = new Intention (votreContext, AlarmBroadCastReceiver.class); pas besoin d'action et aussi supprimer l'action vérifier onReceive – d1vivek681065
merci beaucoup mec :) cela fonctionne –