我想为体育网络服务写一些背景 - 现场 - 自动收报机应用... 我希望我的应用程序能够一直调用TIME_TICK。
顺便说一句:我也试过使用AlarmManager,但问题是一样的。
但现在我的问题......
我使用带有服务的Receiver来执行部分。 注册后,每分钟都会正确调用接收器。 但每天晚上服务终止,永远不会再被召唤。
在Android 2.x上一切正常但Android 4.x每天都会停止接收器...... 有没有可能让Android 4.x保持应用程序活着?
Reveiver已在我的主要活动中注册:
registerReceiver(new MyReceiver(), new IntentFilter(Intent.ACTION_TIME_TICK));
的清单条目: 的
<service android:name="de.pepdev.MyService" />
<receiver android:name="de.pepdev.MyReceiver">
<intent-filter>
<action android:name="android.intent.action.TIME_TICK" />
</intent-filter>
</receiver>
接收机级: 的
public class MyReceiver extends BroadcastReceiver
{
public static long nextExecTime = 0;
public static Calendar currentTime = Calendar.getInstance();
@Override
public void onReceive(Context context, Intent intent)
{
currentTime = Calendar.getInstance();
if(nextExecTime <= currentTime.getTimeInMillis())
{
Intent service = new Intent(context, MyService.class);
context.startService(service);
}
}
}
答案 0 :(得分:0)
我也试过使用AlarmManager,但问题是一样的
AlarmManager
是比ACTION_TIME_TICK
好得多的答案,特别是如果您让用户配置轮询频率(包括“从不轮询,请选择,因为我喜欢我的电池和带宽使用情况”)保持低位“)。
请随时提出一个单独的StackOverflow问题,询问您遇到的任何问题。
但每天晚上服务终止,永远不会再被召唤
Android可以并且可以随时根据用户请求或年龄终止您的流程。
清单条目:
<receiver>
毫无意义,如you cannot register for ACTION_TIME_TICK
via the manifest。