Android召回服务

时间:2011-01-20 12:53:47

标签: android

如果我在活动中,我使用以下代码呼叫服务b:

String start = "start";
    Intent i = new Intent(QScheduleActivity.this, UploadService.class);
    i.putExtra("start", start);
    startService(i)

一旦我进入这项服务,如果需要,我如何从服务中召回服务?

在其他内部我试图回忆起这样的服务:

        Calendar cal = Calendar.getInstance();
        cal.add(Calendar.MINUTE, 30);
        String start = "start";
        Intent i = new Intent(UploadService.this, UploadService.class);
        i.putExtra("start", start);
        PendingIntent sender = PendingIntent.getBroadcast(this, 192837, i, PendingIntent.FLAG_UPDATE_CURRENT);
        AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
        am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), sender); 

2 个答案:

答案 0 :(得分:0)

查看AlarmManager课程。我认为它提供了您需要的功能,但可能与您描述它的方式不同。

来自文档:

  

此类提供对   系统报警服务。这些允许你   安排您的应用程序运行   在未来的某个时刻。当一个   警报响起,有Intent   已经注册的是广播   系统,自动启动   目标应用程序,如果不是   已经运行。注册的警报是   在设备睡着时保留   (并且可以选择唤醒设备   如果他们在那段时间内离开),但是   如果关闭,将被清除   并重新启动。

答案 1 :(得分:0)

  

在其他内部我试图回忆起这样的服务:

您要求getBroadcast() PendingIntent。如果您的目标是拨打警报startService(),则应使用getService() PendingIntent