只是一个简单的问题,我在我正在制作的应用上有谷歌地图,第一个屏幕相对复杂(以后会有一个闪屏) 问题是这些之间的区别是什么:
new Thread(new Runnable() {
public void run(){
// we start a thread as maps can take some time to start, the app starts much faster this way
// we do not "have" to do this but its the best option
getActivity().runOnUiThread(new Runnable()
{
//we need to run on a UI thread as they are GUI interfaces, would crash otherwise
public void run()
{
setUpMapIfNeeded(inflatedView);
CheckGPS();
}
});
}
}).start();
选项2:
getActivity().runOnUiThread(new Runnable()
{
//we need to run on a UI thread as they are GUI interfaces, would crash otherwise
public void run()
{
setUpMapIfNeeded(inflatedView);
CheckGPS();
}
});
其中哪一个最好用,我的应用程序启动谷歌地图,但我希望它在一个线程中做到这一点,以确保用户拥有最佳体验,在慢速设备上加载时间稍微快一点,所以我知道&# 39; s帮助但想知道哪个是bset选项。提前致谢
答案 0 :(得分:3)
您的第一个方法实际上将创建一个新线程,然后使用主UI线程来执行
setUpMapIfNeeded(inflatedView);
CheckGPS();
,第二个只是在主UI线程上完成这项工作而不创建新线程。除非你在设置地图之前做了些什么,否则第一种方法(创建一个新线程)似乎毫无意义,因为无论如何它将在主UI线程上完成。
另一方面,我建议考虑使用AsyncTask。它用于这种情况,并有一个方法在UI线程上工作,也可以在后台工作。