如何在android视图中启动/停止计时器/异步任务
我需要一个在固定时间执行的作业(例如,每1秒执行一次) 我知道我可以通过如何在android视图中启动/停止计时器/异步任务,android,asynchronous,view,Android,Asynchronous,View,我需要一个在固定时间执行的作业(例如,每1秒执行一次) 我知道我可以通过定时器或异步任务来实现这一点 但是,我必须在创建视图时启动作业。但我想知道我在哪里可以停止这项工作?因为我还没有找到android.view.view的生命周期 替代方案是什么 我有一个可供其他人使用的自定义视图,我必须在视图聚焦后启动计时器或异步任务,并在视图不可见时停止后台作业。因为您的活动有视图实例,调用View方法,让View类知道活动已被销毁或停止,具体取决于您的需求 private View mView; pu
定时器
或异步任务
来实现这一点
但是,我必须在创建视图时启动作业。但我想知道我在哪里可以停止这项工作?因为我还没有找到android.view.view的生命周期
替代方案是什么
我有一个可供其他人使用的自定义视图,我必须在视图聚焦后启动
计时器
或异步任务
,并在视图不可见时停止后台作业。因为您的活动
有视图实例,调用View
方法,让View类知道活动已被销毁或停止,具体取决于您的需求
private View mView;
public void onDestroy {
super.onDestroy();
mView.stopCounter();
}
public void onStop() {
super.onStop();
mView.stopCounter();
}
公共类A扩展异步任务
{
虚空背景(…)
{
做
{
睡眠(1000);
//你的作品
}while(条件);
}
}
如果要停止该活动,请向onPostExecute返回一个布尔值,并停止正在执行的工作。查看可以覆盖的方法
onWindowVisibilityChanged
和onWindowFocusChanged
看起来很有用
@Override
protected void onWindowVisibilityChanged(int visibility)
{
super.onWindowVisibilityChanged(visibility);
switch(visibility)
{
case VISIBLE: /* code */ break;
case INVISIBLE: /* code */ break;
case GONE: /* code */ break;
}
}
@Override
public void onWindowFocusChanged(boolean hasWindowFocus)
{
super.onWindowFocusChanged(hasWindowFocus);
}
它是什么类型的应用程序?为什么您需要知道某个
视图的“生命周期”?你指的是活动
?我不是指活动
。因为我在自定义视图的构造函数上创建了一个计时器,并且在释放视图时必须停止它。所以活动
将继续运行,但视图
将被销毁?这是什么类型的视图
?它是如何显示的。解释你的程序。@mrres1:我更新了帖子。
@Override
protected void onWindowVisibilityChanged(int visibility)
{
super.onWindowVisibilityChanged(visibility);
switch(visibility)
{
case VISIBLE: /* code */ break;
case INVISIBLE: /* code */ break;
case GONE: /* code */ break;
}
}
@Override
public void onWindowFocusChanged(boolean hasWindowFocus)
{
super.onWindowFocusChanged(hasWindowFocus);
}