Стартқа жоспарланған әрекетті бастаудың ұсынылатын әдісі?

Мен жоспарланған іс-шараларды жүргізуге тырысып, сағат бойы жұмыс істеуге тырысады, барлығы фонда жұмыс істейді.

Қазір менде құрылғы жүктеліп жатқан кезде BroadcastReceiver бар. BroadcastReceiver, жасалатын әрекетке (Called AlarmController) біреуін күтіп отырады, жоспарланған әрекетті өшіруге қажетті барлық қажетті әдістерге ие.

Бірақ бұл қалай жұмыс істемейді. MyRecover {} сияқты BroadcastReciever сыныбы мынада, және сияқты менің негізгі қызметімде шүбәсіз болып көрінеді (Тек тестілеу үшін)

    Intent intent = new Intent(serviceactivirt.this, AlarmController.class);
    PendingIntent sender = PendingIntent.getActivity(serviceactivirt.this, 0, intent, 0);
    try {
        sender.send();
    } catch (CanceledException e) {
        Toast.makeText(getApplicationContext(), "FEJLSAN", Toast.LENGTH_LONG).show();
    }

Бұл іс жүзінде менің қолданба іске қосылған кезде апат болғаннан басқа, бірақ жоспарланған әрекет жұмыс істейді ... Кез келген идеялар? Бұл «мұны қалай жүзеге асырады» немесе бұл ұсынылған жол бар ма? Көңілділер!

Шешім:

Қызметті шақыратын BroadcastReciever орнына, мен BroadcastReciever-ды қызметті бастаған болатынмын. Қызметімді қызметке, бағдарламалы және манифестке ауыстырдым. Үлкен жұмыс істейді!

0
әрекеттің неге құлдырауы?
қосылды автор slayton, көзі

1 жауаптар

Жоспарланған әрекетті әр сағатта немесе одан кейін өшіруге тырысамын, барлығы фонда жұмыс істейді.

Пожалуйста, алдыңғы жоспардағы әрекетке кедергі келтірмей, пайдаланушыларға Notification сияқты басқа параметрлерді теңшеуге рұқсат беріңіз.

Дәл қазір менде құрылғы жүктеліп жатқан кезде таңдалған BroadcastReceiver бар.

Сағаттық оқиғалар үшін AlarmManager кестесін орнату қажет. getActivity() арқылы алуға болатын AlarmManager үшін PendingIntent болуы мүмкін.

Қалай болғанда да, бұл жұмыс істемейді.

Егер әрекетті бастау керек болса, startActivity() деп қоңырау шалыңыз. PendingIntent құрмаңыз, одан кейін sendInCode sendIntent .

Сондай-ақ, getApplicationContext() қызметінен босатыңыз және this сөзін пайдаланыңыз.

Қолданбам іске қосылса,

LogCat-ті қарау үшін және сіздің апатқа байланысты стек ізін қарау үшін adb logcat , DDMS немесе Eclipse ішіндегі DDMS перспективасын пайдаланыңыз.

0
қосылды