Запустить приложение в указанное пользователем время? - PullRequest
0 голосов
/ 04 марта 2011

У меня есть приложение, которое воспроизводит радиостанции, и теперь я хочу встроить будильник так, чтобы он воспроизводил радиостанцию ​​при срабатывании будильника.Я смотрел в Alarm Manager, который, кажется, лучший способ сделать это.

В моем приложении есть кнопка будильника, которая вызывает диалог для установки будильника.Если установлен будильник, необходимо запустить приложение в указанное время.Тем не менее, у меня возникли проблемы с этим разделом кода:

Intent intent = new Intent("some Context", null, null, MainActivity.class);
PendingIntent pendInt = PendingIntent.getBroadcast("some Context", 0, intent, 0);
AlarmManager alarmService = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmService.set(AlarmManager.RTC_WAKEUP, timeToSound, pendInt);

В частности, я не совсем понимаю, каким должен быть context.Я видел много примеров, но никто не объясняет это подробно.Я был бы признателен, если бы кто-то мог пролить некоторый свет на этот вопрос.
больше кода, который мог бы помочь ...

@Override
    protected Dialog onCreateDialog(int id) {
        Dialog d = null;
        switch (id) {
        case LINEUP_DIALOG_ID:
            d = new LineupDialog(this);
            d.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
            WindowManager.LayoutParams lp = d.getWindow().getAttributes();
            lp.dimAmount = 0.5f;
            d.getWindow().setAttributes(lp);
            break;

это вызывает мой диалог ^

private View.OnClickListener lineupAction = new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            //showAlarm();
            showDialog(LINEUP_DIALOG_ID);
        }
    };

обаэто в моей mainActivity.
тогда у меня есть xml-файл, который содержит макеты (может быть предоставлен при необходимости ... просто позволяет пользователю выбрать время и флажок, затем сохранить)
кнопка сохранения имеет onclickListener-- это в моем классе LineupDialog, который расширяет мой NavDialog, а мой navdialog просто расширяет Dialog.

Ответы [ 2 ]

0 голосов
/ 08 марта 2011

получается, что мне нужно было также создать новый класс ... часть контекста, работавшего путем создания переменной, и, если кому-то еще это нужно, вот мой код для новой службы, которую мне пришлось создать.

//imports here
public class AlarmService extends Service{

    @Override
    public IBinder onBind(Intent arg0) {
        // TODO Auto-generated method stub
        //System.out.println("hello im in the alarmService Binder");

        return null;
    }

    @Override
    public void onStart(Intent intent, int startid) {
        Intent mainAct = new Intent("android.intent.action.MAIN");
        //System.out.println("hello im in the alarmService onStart " + mainAct);
        mainAct.setClass(AlarmService.this, MainActivity.class);
        mainAct.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        mainAct.putExtra("alarm","true");
        startActivity(mainAct);
    }

    @Override
    public void onCreate() {
        //System.out.println("hello im in the alarmService onCreate");
        //code to execute when the service is first created
    }

}

тогда не забудьте добавить его в манифест

0 голосов
/ 04 марта 2011

Kyle,

Это должен быть Context пакета, но иногда это может зависеть от того, где в вашем коде вы создаете Intent и PendingIntent.Вы только что попробовали this или getApplicationContext()?

...