我试图在这里理解代码,特别是匿名类
private Runnable mUpdateTimeTask = new Runnable() {
public void run() {
final long start = mStartTime;
long millis = SystemClock.uptimeMillis() - start;
int seconds = (int) (millis / 1000);
int minutes = seconds / 60;
seconds = seconds % 60;
if (seconds < 10) {
mTimeLabel.setText("" + minutes + ":0" + seconds);
} else {
mTimeLabel.setText("" + minutes + ":" + seconds);
}
mHandler.postAtTime(this,
start + (((minutes * 60) + seconds + 1) * 1000));
}
};
文章说
处理程序将更新代码作为主线程的一部分运行,从而避免了第二个线程的开销。
创建新的Runnable类是否应该创建新的第二个线程?除了能够将Runnable类传递给postAtTime之外,这里Runnable类的目的是什么?
谢谢
Runnable
通常用于提供线程应运行的代码,但Runnable
它本身与线程无关。它只是一个带有run()
方法的对象。
在Android中,Handler
该类可用于要求框架稍后在 同一 线程上而不是在另一个线程上运行某些代码。
Runnable
用于提供稍后应运行的代码。
问题内容: 我开发了一个使用GoogleMap的应用程序。我刚刚在Eclipse中更新了Android插件(带有Android L库),并重新导入了GooglePlayService库等。 因此,我重新编译后,在手机(4.4.2中的Sony Xperia Z),GenyMotion Emulator(4.4.2),Nexus 7(4.4.2)上都可以正常工作。但是,它不能在两个Samsung Ga
在使用CPU的高负载应用程序上进行线程转储,我看到很多线程处于这种状态: “ajp executor threads-XXXXXX”prio=10 tid=0x00002b04b8b33801 nid=0x5327可运行[0x0000000000000000]java。lang.Thread。状态:可运行 对我来说,真正奇怪的是根本没有堆栈跟踪,ajp线程的总数高于配置的最大线程数(见下文) 当应
我的Google Glass今天更新到了KitKat,我认为我已经成功地完成并更新了Eclipse,但是Eclipse在更新引入GDK的新方法上出现了错误。例如,部分更新是 setText()期望java.lang.CharSequence 所以,我把代码从 card.set文本(some_String); 到 card.set文本(some_CharSequence); 然而,当我这样做时,ec
问题内容: 通过网络嵌套更新,打印“ abc已更新”,但实际值在Redis数据库中不更新。 注意:-上面的代码在localhost上有效,但更新未在heroku-redistogo上显示。 编辑:-我在本地主机上运行代码,redis连接到Redistogo。使用以下代码:- 设置快速会议:- 我还使用以下代码创建了另一个redisClient: 问题答案: 在Heroku上运行此代码时,您是否在控
我已经发现了其他类似于我的问题,但找不到解决办法。我有一个带有简单和配置的自定义小部件。问题是: > 将小部件添加到homescreen时,会出现配置活动,但是一旦创建了配置活动,就会立即运行的方法。它应该在按确定按钮关闭配置活动后运行。 即使方法在配置活动启动时运行(根据方法中的Toast显示textview的正确数据),textview仍然没有更新。 即使Android:UpdatePerio