Android::如何在时间x重新启动服务并运行特定功能

Android::如何在时间x重新启动服务并运行特定功能,android,service,alarmmanager,android-pendingintent,Android,Service,Alarmmanager,Android Pendingintent,问题 我想知道一些像主题所说的概念 这样做的要求是什么 我认为PendingEvent和AlarmManager将有助于重新启动服务 但我不知道如何让它调用我需要的函数 请给我一些建议 比如说 我的服务类中有2个函数,我想注册它 要运行这两个选项中的一个,取决于用户将来在时间x提出的建议 一些我用来编辑的代码 AlarmManager应该工作吗?你试过了吗?是的,但我不知道如何让它在我的函数中运行OK你能显示你试过的任何代码吗?我试过一些方法,比如编辑问题,让它在一定时间内调用某些活动。现在我正

问题

我想知道一些像主题所说的概念

这样做的要求是什么

我认为PendingEvent和AlarmManager将有助于重新启动服务

但我不知道如何让它调用我需要的函数

请给我一些建议

比如说

我的服务类中有2个函数,我想注册它

要运行这两个选项中的一个,取决于用户将来在时间x提出的建议

一些我用来编辑的代码


AlarmManager应该工作吗?你试过了吗?是的,但我不知道如何让它在我的函数中运行OK你能显示你试过的任何代码吗?我试过一些方法,比如编辑问题,让它在一定时间内调用某些活动。现在我正在尝试使用服务OK它是在x秒后启动的吗?
public class MyActivity extends Activity implements View.OnClickListener {
    private Button b1;

    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        b1 = (Button)findViewById(R.id.cmd1);
        b1.setOnClickListener(this);

    }

    @Override
    public void onClick(View view) {


        startIntentAt(5,MyReceiver.class);
        finish();
    }

    private void startIntentAt(int seconds, Class<?> c) {
        Intent myIntent = new Intent(getBaseContext(), c);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(),0, myIntent, 0);

        AlarmManager alarmManager= (AlarmManager)getSystemService(ALARM_SERVICE);

        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(System.currentTimeMillis());
        calendar.add(Calendar.SECOND, seconds);
        //long interval = 60 * 1000; //
        alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
    }


public class MyReceiver extends BroadcastReceiver{
    @Override
    public void onReceive(Context context, Intent intent) {
        Intent scheduledIntent = new Intent(context, TargetActivity.class);
        scheduledIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(scheduledIntent);
    }
}
}