Java android秒表/计时器应用程序-时间用完时切换回应用程序

Java android秒表/计时器应用程序-时间用完时切换回应用程序,java,android,service,timer,stopwatch,Java,Android,Service,Timer,Stopwatch,我正在开发一个应用程序,如标题中所述。我需要以某种方式管理应用程序将运行/计算时间,即使用户启动/切换到另一个应用程序。好吧,正如我在stackoverflow.com上的另一次讨论中所了解到的,并没有必要创建在后台工作的服务,并且当应用程序不活动时,无意义地让处理器计算时间 需要做的一切就是存储用户切换到另一个应用程序时的当前时间,将其与他切换回的时间进行比较,并根据这些时间之间的差异更新UI。这是秒表模式。在定时器模式下,我需要根据时间自动切换回应用程序,这是应用程序的UI在进入后台时显示。

我正在开发一个应用程序,如标题中所述。我需要以某种方式管理应用程序将运行/计算时间,即使用户启动/切换到另一个应用程序。好吧,正如我在stackoverflow.com上的另一次讨论中所了解到的,并没有必要创建在后台工作的服务,并且当应用程序不活动时,无意义地让处理器计算时间


需要做的一切就是存储用户切换到另一个应用程序时的当前时间,将其与他切换回的时间进行比较,并根据这些时间之间的差异更新UI。这是秒表模式。在定时器模式下,我需要根据时间自动切换回应用程序,这是应用程序的UI在进入后台时显示。什么是最适合这个问题的解决方案,你能给我一些简单的例子吗

使用它
AlarmManager
允许您计划任务,并在任务被触发时收到通知。

因此请使用AlarmManager

public class MainActivity extends Activity
{
   @Override
   public void onCreate(Bundle savedInstanceState) 
  {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            //call function where you want
            timeout();
  }

public void timeout()
{       //time in milliseconds 1 minute
        Long time = new GregorianCalendar().getTimeInMillis()+60*1000; //i.e.60*1000=1minute
        // create an Intent and set the class which will execute when Alarm triggers, here we have
        Intent intentAlarm = new Intent(this, AlarmReciever.class);
        AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        alarmManager.set(AlarmManager.RTC_WAKEUP,time, PendingIntent.getBroadcast(this,1,  intentAlarm, PendingIntent.FLAG_UPDATE_CURRENT));

    }
}
这里是广播课:

 public class AlarmReciever extends BroadcastReceiver
 {
     @Override
        public void onReceive(Context context, Intent intent)
        {
                // show dialog or what you want

         }

}
 //permission
 <uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
 //our receiver
 <receiver android:name=".AlarmReciever"/> 
别忘了编辑AndroidMainfest:

 public class AlarmReciever extends BroadcastReceiver
 {
     @Override
        public void onReceive(Context context, Intent intent)
        {
                // show dialog or what you want

         }

}
 //permission
 <uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
 //our receiver
 <receiver android:name=".AlarmReciever"/> 
//权限
//我们的接受者

服务有什么问题???服务是更好的方法。服务是为后台长时间运行的进程提供的,不是吗?我只需要在时间用完后切换回应用程序,并显示一些警报窗口或播放声音。在AlarmReceiver类中,我应该编写代码,通过startactivity()方法切换回应用程序?是的,您可以直接切换活动或显示对话框,或播放一些声音或您想要的内容。。。