我正在开发一个应用程序,如标题中所述。即使用户启动/切换到另一个应用程序,我也需要以某种方式管理该应用程序将运行/计时。好吧,正如我从stackoverflow.com上的另一个讨论中了解到的那样,没有必要创建在后台工作的服务,并且无需负担处理器,以及在app不活动时计算时间。
需要做的就是在用户切换到另一个应用程序时存储当前时间,将其与切换回来的时间进行比较,并根据这些时间之间的差异更新UI。这是秒表模式的。在计时器模式下,我需要根据时间自动切换回应用程序,即应用程序的UI显示何时进入后台。什么是适合此的最佳解决方案,你能给我一些简单的例子吗?
答案 0 :(得分:1)
使用AlarmManager
。 AlarmManager
允许您安排任务并在被解雇时收到通知。
答案 1 :(得分:0)
因此请使用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
}
}
别忘了编辑AndroidMainfest:
//permission
<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
//our receiver
<receiver android:name=".AlarmReciever"/>