Android 我想在预定的时间开始我的活动。例如3o';时钟

Android 我想在预定的时间开始我的活动。例如3o';时钟,android,Android,代码有什么问题? 我把时间改成了测试。 请提供详细的结果 AlarmManager am = (AlarmManager) getBaseContext().getSystemService(Context.ALARM_SEDate futureDate = new Date(new Date().getTime() + 86400000); futureDate.setHours(7); futureDate.setMinutes(45); futureDate.set

代码有什么问题? 我把时间改成了测试。 请提供详细的结果

AlarmManager am = (AlarmManager) getBaseContext().getSystemService(Context.ALARM_SEDate futureDate = new Date(new Date().getTime() + 86400000);
    futureDate.setHours(7);
    futureDate.setMinutes(45);
    futureDate.setSeconds(0);

    Intent intent = new Intent(getBaseContext(), MyBroadcastReceiver.class);

    PendingIntent sender = PendingIntent.getBroadcast(getBaseContext(), 0,intent,
            PendingIntent.FLAG_UPDATE_CURRENT);
这是我的广播接收器

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class MyBroadcastReceiver extends BroadcastReceiver {
//MediaPlayer mp;
@Override
public void onReceive(Context context, Intent intent) {
    //mp=MediaPlayer.create(context, R.raw.alrm   );
    //mp.start();
    //Toast.makeText(context, "Alarm....", Toast.LENGTH_LONG).show();
    Intent scheduledIntent = new Intent(context, HorrorRes.class);
    scheduledIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(scheduledIntent);

}
}

对于你的目标,我有很多智慧。我最近发布了一个闹钟应用程序,它只能通过NFC(点击付费)技术禁用

以下是您今后需要做的几件事:

  • 使用getSystemService(Context.ALARM\u服务)

  • 日历很特别。使用Calendar.add()或.set(),Calendar类将适当地更改其许多内部变量。使用Calendar.getTime()将重新计算Calendar的所有内部字段,然后返回日期对象

    Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(System.currentTimeMillis());
    calendar.add(Calendar.SECOND, 4);
    Date date = calendar.getTime();
    Log.d("WakefulReceiver", date.toString());
    mAlarmManager.setExact(AlarmManager.RTC_WAKEUP,    date.getTime(), mIntent);
    
  • 你的意图很好

  • 将您的BroadcastReceiver转换为WakefulBroadcastReceiver,这个类处理您的wakelock并为您完成繁重的工作。我们真的希望Android中的BroadcastReceiver接收()。在receive中,您可以启动IntentService

  • IntentService将是处理设计中应发生的多种事情的类。您的IntentService应该:(A)启动一个单独的服务来运行异步前台媒体播放器。(B) 开始你的活动

我可以了解更多细节

  • WakefulBroadcastReceiver=/app/WakefulReceiver.java
  • IntentService=/app/RingingService.java
  • MediaPlayer(作为前台异步服务)=/app/AlarmService.java

请给我留言,让我了解更多信息

您在哪里设置闹钟?也就是说,您在哪里调用
am.set()
,或者类似的方法?为什么要执行new Date().getTime()+86400000,它将获取当前时间,然后添加该时段。。然后在此之后设置日历时间参数。。你应该先设置数据。。然后设置它Minent和nAlarmManagerI的意思是什么?我对代码有很多问题,我如何与您联系?我是StackOverflow的新手