ome*_*ega 2 java android timer
在我的android项目中,我有一个需要每分钟运行一次代码的活动.我怎样才能做到这一点?代码需要在活动运行时每分钟运行而不是暂停(即用户看到它而不是其他活动).此外,它应该在应用程序最小化时运行.
当活动结束时,代码应该停止运行.
有谁知道这个代码?
谢谢
您可以android.intent.action.TIME_TICK
在活动中注册广播
private BroadcastReceiver receiver;
@Overrride
public void onCreate(Bundle savedInstanceState){
IntentFilter filter = new IntentFilter();
filter.addAction("android.intent.action.TIME_TICK");
receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// TODO : codes runs every minutes
}
}
registerReceiver(receiver, filter);
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(receiver);
}
Run Code Online (Sandbox Code Playgroud)
广播行动:当前时间已经改变.每分钟发送一次.您不能通过在清单中声明的组件来接收它,只能通过使用Context.registerReceiver()显式注册它.
这是受保护的意图,只能由系统发送.
常量值:"android.intent.action.TIME_TICK"
更新
为Joakim在评论中提到,因为你想在活动停止运行时停止代码,你可以在onResume中注册接收器并在onPause中取消注册
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(receiver);
}
@Overrride
public void onResume(){
super.onResume();
registerReceiver(receiver, filter);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1809 次 |
最近记录: |