`
- 浏览:
243662 次
- 性别:
- 来自:
北京
-
ERROR/AndroidRuntime(11761): java.lang.IllegalStateException: TimerTask is sche
android应用开发中常常会用到定时器,不可避免的需要用到 TimerTask 定时器任务这个类
下面简单的一个示例演示了如何使用TimerTask
这个示例演示了3秒未有触屏事件发生则锁屏(只是设置下文本,意思一下)有触屏事件则解除锁定
public class ColTimerTaskActivity extends Activity {
/** Called when the activity is first created. */
private final String TAG = "ColTimerTaskActivity";
private final int EVENT_LOCK_WINDOW = 0x100;
private TextView textView;
private Handler mHandler;
private Timer mTimer;
private MyTimerTask mTimerTask;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
textView = (TextView)findViewById(R.id.textview);
mHandler = new Handler(){
public void handleMessage(Message message){
Log.i(TAG, "message what = " + message.what);
if (message.what == 0x100){
lockWindow();
}
}
};
mTimer = new Timer(true);
resumeWindow();
StartLockWindowTimer();
}
public boolean onTouchEvent(MotionEvent event)
{
// TODO Auto-generated method stub
resumeWindow();
StartLockWindowTimer();
return super.onTouchEvent(event);
}
public void resumeWindow(){
textView.setText("main window");
}
public void lockWindow(){
textView.setText("lock window");
}
public void StartLockWindowTimer(){
if (mTimer != null){
if (mTimerTask != null){
mTimerTask.cancel(); //将原任务从队列中移除
}
mTimerTask = new MyTimerTask(); // 新建一个任务
mTimer.schedule(mTimerTask, 3000);
}
}
class MyTimerTask extends TimerTask{
@Override
public void run() {
// TODO Auto-generated method stub
Log.i(TAG, "run...");
Message msg = mHandler.obtainMessage(EVENT_LOCK_WINDOW);
msg.sendToTarget();
}
}
}
这里需要注意两个问题:
if (mTimerTask != null){
mTimerTask.cancel(); //将原任务从队列中移除
}
每次放定时任务前,确保之前任务已从定时器队列中移除
mTimerTask = new MyTimerTask(); // 新建一个任务
每次放任务都要新建一个对象,否则出现一下错误:
ERROR/AndroidRuntime(11761): java.lang.IllegalStateException: TimerTask is scheduled already
所以同一个定时器任务只能被放置一次
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
2.java.lang.IllegalStateException: Adapter is detached. 原因: 1.单线程一次执行一个请求可以正常执行,如果使用多线程,同时执行多个请求时就会出现连接超时. 2.HttpConnection没有连接池的概念,多少次请求就...
标题中的“JSON中,java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher...在实践中,使用像`mvn dependency:tree`(Maven)或`./gradlew dependencies`(Gradle)这样的命令来检查项目的依赖结构也是很有用的。
E/AndroidRuntime: FATAL EXCEPTION: main android.view.InflateException: Binary XML file line #13: Error inflating class at android.view.LayoutInflater.createView(LayoutInflater.java:613) at ...
05-27 15:35:11.487 E/AndroidRuntime( 2352): java.lang.RuntimeException: Unable to create service com.android.systemui.keyguard.KeyguardService: java.lang.SecurityException: read wallpaper: Neither ...
java.lang.NullPointerException: Attempt to invoke virtual method ‘void android.widget.ImageView.setImageResource(int)’ on a null object reference 今天在家练习ListView的时候,遇到一个java.lang....
Java.lang包是Java编程语言的核心库之一,它包含了一些最基础和最重要的类,这些类为所有其他Java程序提供了基本服务。在"JBuider第六章:Java.lang包"的教程中,你可能会深入学习到以下几个关键知识点: 1. **基础...
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/core/runtime/IProgressMonitor at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class....
AndroidRuntime: java.lang.UnsatisfiedLinkError: Couldn’t load airtalkee from loader dalvik.system.PathClassLoader[DexPathList[[zip file “/system/app/POCM3A.apk”, zip file “/data/data/com.cmccpo
注意!!!!这个jar仅支持commons-lang-3.x 注意!!!!这个jar仅支持commons-lang-3.x ...Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException
启动eclipse 时出现错误警告
Simpliest way to ask runtime permissions on Android, choose your way : Kotlin Kotlin with Coroutines RxJava Java8 Java7 No need to override Activity or FragmentonPermissionResult(code, permissions,...
// Tag: AndroidRuntime // java.lang.NullPointerException: // at com.android.launcher.LauncherAnimator.ScrollAnimate3dRotate.drawFrame(ScrollAnimate3dRotate.java:275) // at ...
旧版本包:android.arch.core:runtime AndroidX:androidx.arch.core:core-runtime:2.0.0-rc01 2. Android_Lifecycle 旧版本包:android.arch.lifecycle:common AndroidX:androidx.lifecycle:lifecycle-common:...
Android系统是基于Linux内核的,但其应用程序主要是用Java语言编写,并通过Dalvik虚拟机或ART(Android RunTime)运行。因此,"抢滩登陆Java版"利用了Java的跨平台特性,使得游戏能够无缝移植到Android系统上。开发者...
《ArcGIS Runtime SDK for Android 100.11:构建地图应用的基石》 ArcGIS Runtime SDK for Android 是Esri公司提供的一款强大的开发工具,它允许开发者在Android平台上构建地图应用,集成地理信息系统(GIS)功能。...
《ArcGIS Runtime SDK for Android 100.6.0:构建地理空间应用程序的利器》 ArcGIS Runtime SDK for Android 100.6.0 是Esri公司为Android平台提供的一个强大的开发工具包,它使得开发者能够创建具有专业级地图和...
ArcGIS for Android的sdk,可以用Android studio编译示例代码。
apparmor.security.beta.kubernetes.io/allowedProfileNames: runtime/default apparmor.security.beta.kubernetes.io/defaultProfileName: runtime/default spec: privileged: false volumes: - config...