В настоящее время я работаю над приложением тревоги для Android (да, я знаю, что я не единственный).Я довольно новичок в разработке Android, но мне удалось завершить ядро приложения, и все, что мне нужно, это 1 вещь.Чтобы иметь возможность установить будильник (во время xyz) и после того, как будильник погаснет, начать действие, ДАЖЕ, ЕСЛИ ТЕЛЕФОН СПЯТ (не выключен, очевидно), а все остальное сделано.
Теперь я прочиталРуководство для разработчиков, и я считаю, что путь можно пройти через BroadcastReceiver, а затем следует направить намерение к запуску действия, но я не могу понять, где можно найти примеры или похожие посты, чтобы хотя бы получить представление.
Прямо сейчас у меня работает AlarmManager, фактически работающий после пробуждения, но он будет работать только в том случае, если телефон полностью проснулся и вообще ничего не спит, или, по крайней мере, пока телефон не разблокирован.
Любые предложения?При необходимости можете опубликовать пример кода.Заранее спасибо
Обновление
@ Джоэл Спасибо за ответного человека.Я на самом деле читал о PowerManager.WakeLock, но рад, что вы меня перенаправили.Теперь это то, что я придумал для принимающей деятельности (это может быть неправильно, но потерпите меня)
public class OnAlarmActivity extends Activity {
MediaPlayer mpAlarm;
MediaPlayer mpButton;
PowerManager.WakeLock wl;
private BroadcastReceiver theReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Tag");
wl.acquire();
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.on_alarm);
mpAlarm = MediaPlayer.create(this, R.raw.filename);
mpAlarm.start();
mpButton = MediaPlayer.create(this, R.raw.buttonfilename);
ImageView imgForAlarmScreen= (ImageView)findViewById(R.id.oftheimage);
Animation myFadeInAnimation = AnimationUtils.loadAnimation(this, R.anim.fadein);
imgForAlarmScreen.startAnimation(myFadeInAnimation); //animation for ImageView
Button bNextActivity = (Button)findViewById(R.id.ofthebutton);
bNextActivity.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mpButton.start();
startActivity(new Intent("com.myapps.otheractivity"));
}
});
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
mpAlarm.start();
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
mpAlarm.pause();
}
@Override
protected void onRestart() {
// TODO Auto-generated method stub
super.onRestart();
mpAlarm.start();
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
wl.release();
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
mpAlarm.release();
}
}
Теперь все это, и все же оно не будет просыпаться или даже звучать, если телефон не активен (проснулся),Любые идеи о том, как я могу эффективно использовать замок?