我刚开始学习Android开发。我有相当不错的Java经验,包括线程。我一直在研究BluetoothChat示例,并且困惑的是发现onPause()和onResume()方法被同步了。因为这两个方法只在UI线程上执行,所以我不明白为什么需要同步。
我刚开始学习Android开发。我有相当不错的Java经验,包括线程。我一直在研究BluetoothChat示例,并且困惑的是发现onPause()和onResume()方法被同步了。因为这两个方法只在UI线程上执行,所以我不明白为什么需要同步。
仅因为onPause()只在主线程上运行,并不意味着其他线程不能同时运行。这只是确保安全的线程,以防另一个线程正在运行并希望访问onPause()将要使用/修改的变量。
在我看来,唯一防止的是如果有人试图在完全初始化之前完成活动(即完成调用onResume())。我猜想它会防止您或任何其他线程在其达到运行状态之前完成该活动。
还请参见问题。
Android开发者文档中关于进程和线程的部分很好地解释了应用程序生命周期的工作原理以及线程的作用。