java暂停按钮代码_java – 你如何让代码在android中暂停几秒钟?

学习在事件方面的思考确实是关键。你能行的。 🙂

第一个规则是:永远不会停止UI线程。 UI线程负责保持您的应用程序感觉响应。你在那里做的任何工作都不应该阻止;做你需要做的,并尽快返回。绝对避免在UI线程上执行I / O。 (有些地方你不能真正地帮助它,由于生命周期的要求,例如保存应用程序状态在onPause。)如果你曾经调用Thread.sleep UI线程你做错了。

Android使用用户看到的“应用程序无响应”(或“ANR”)错误来强制执行此操作。每当你在Android应用程序中看到这一点,这意味着开发人员做了一些事情,导致UI线程停止太长时间。如果设备真的陷入了一些原因,这个错误可能不是实际上是应用程序开发人员的错,但通常这意味着应用程序做错了。

您可以通过发布自己的活动来使用此模式。这可以让你轻松地告诉你的应用程序,“稍后再做。在Android中,发布您自己的事件的关键是在Handler类。方法postDelayed允许您计划将在一定毫秒数之后执行的Runnable。

如果你有一个看起来像这样的Activity:

public class MyActivity extends Activity {

private Handler mHandler = new Handler();

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

mHandler.postDelayed(new Runnable() {

public void run() {

doStuff();

}

}, 5000);

}

private void doStuff() {

Toast.makeText(this, "Delayed Toast!", Toast.LENGTH_SHORT).show();

}

}

然后活动创建5秒后,您将看到在doStuff中创建的烤面包。

如果你正在编写一个自定义视图,它更容易。视图有自己的postDelayed方法,将获取一切发布到正确的处理程序,你不需要创建自己的。

第二个规则是:仅应在UI线程上修改视图。那些你得到和忽略的例外意味着出了问题,如果你忽略它们,你的应用程序可能会以有趣的方式开始行为不端。如果你的应用程序在其他线程中完成大部分工作,可以直接将post事件修改为要修改的视图,以便修改可以正确运行。

如果你从代码的那一部分引用你的Activity,你也可以使用Activity#runOnUIThread,这正是名字所暗示的。你可能更喜欢这种方法,如果发布到单个视图在上下文中真的没有意义。

至于视图的更新不会出现,直到你按下一个按钮,这些是什么样的意见?他们是自定义视图是否正在绘制这些更新?如果是,你记得在数据更改后调用invalidate触发重绘吗?视图只有在它们失效后才重新绘制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值