关于安卓启动界面的问题
1个回答
展开全部
首先呢,你贴出来的这段代码,一般是用于一个程序启动的时候进行初始化,初始化的不是界面而是程序配置和数据库相关之类的。这是对一个程序的初始化。
再说楼主的需求,你是想对一个界面进行预加载,对吧?那肯定就不能用这种intent的方式,你可以这样去实现:
1.
最外层布局用RelativeLayout,用于加载你的主界面,同时也放置一个启动界面,大小都是填满容器,但开始只显示启动界面。
2.
在Activity的onCreate里利用AsyncTask开启一个线程,在doInBackground()方法里加载你主界面初始化需要的数据(比如从数据库取数据,过滤数据等),但这是后台线程,不要执行跟ui有关的操作;在onPostExecute()方法里,执行你对主界面的初始化,这里相当于是runOnUiThread一样了,可以执行UI相关的操作,类似findViews()\addListener等操作可以这里执行;执行完后把启动界面设为不可见,同时显示主界面就好了。
提醒一下,如果启动界面和主界面是不同的activity,你是没办法在启动界面的activity里就初始化主界面的Ui的,还有种思路:如果觉得主界面加载太慢,也不一定要过渡的这种启动界面,可以像上面这样用线程去加载复杂的界面,先简单显示了最初的界面再启动AsyncTask。
再说楼主的需求,你是想对一个界面进行预加载,对吧?那肯定就不能用这种intent的方式,你可以这样去实现:
1.
最外层布局用RelativeLayout,用于加载你的主界面,同时也放置一个启动界面,大小都是填满容器,但开始只显示启动界面。
2.
在Activity的onCreate里利用AsyncTask开启一个线程,在doInBackground()方法里加载你主界面初始化需要的数据(比如从数据库取数据,过滤数据等),但这是后台线程,不要执行跟ui有关的操作;在onPostExecute()方法里,执行你对主界面的初始化,这里相当于是runOnUiThread一样了,可以执行UI相关的操作,类似findViews()\addListener等操作可以这里执行;执行完后把启动界面设为不可见,同时显示主界面就好了。
提醒一下,如果启动界面和主界面是不同的activity,你是没办法在启动界面的activity里就初始化主界面的Ui的,还有种思路:如果觉得主界面加载太慢,也不一定要过渡的这种启动界面,可以像上面这样用线程去加载复杂的界面,先简单显示了最初的界面再启动AsyncTask。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询