我刚刚开始为Android开发。我试图创建一个使用SurfaceView绘制一些简单形状的应用程序,但无法根据菜单事件使其工作(表面始终无效),所以我决定实现线程。现在问题是我无法弄清楚如何阻止运行的杂散线程。我在调试模式下启动了应用程序,然后选择了启动线程的菜单项。然后我点击模拟器界面上的后退按钮退出应用程序。但我在线程上的断点继续受到打击。所以我通过在模拟器中的应用程序列表中单击它返回到应用程序,并选择命令来停止线程。但它没有检测到线程正在运行 - 就像它是一个不同的应用程序实例。
我的主要问题下面有许多微妙的问题,“我应该如何最可靠地处理Android应用程序中的线程关闭?”
我看了Close application and launch home screen on Android ,但它表明不应该终止申请,所以我不知道该怎么办。
答案 0 :(得分:0)
听起来你正试图以一种奇怪的方式使用线程。在Android中,如果您正在使用UI,则不应该使用vanilla java线程。相反,您应该使用AsyncTask。如果您尝试从非UI线程访问UI,Android运行时会向您抱怨。相反,您需要在处理线程和活动(实际管理UI的位置)之间来回传递消息。这是通过使用信使和处理程序完成的,但过程变得复杂。相反,更好的解决方案是使用AsyncTask模型,它允许您在后台执行无缝更新UI的操作。这通常用于网络应用程序,您可以在任务中下载某些信息,然后相应地更新UI。因此,请尝试阅读一些AsyncTask教程并找出它可以为您做的所有很酷的事情(在Android中处理线程化头痛的问题主要是通过使用这个模型来避免,实际上你应该永远不必去杀死一个线程)。