我試過CommonsWare的答案,但是在沒有MapView的情況下,即使是裸露的MapActivity也會出現明顯的延遲。
所以,我把另一個活動放在中間,「MapLoading」。我的家庭活動啓動MapLoading,然後使用post()立即啓動MapActivity。由於滯後,應用程序在MapLoading上停留了幾秒鐘(這是預期的結果,而不是堅持我的家庭活動)。
MapLoading活動沒有歷史記錄集,所以當從MapActivity單擊後退按鈕時,它會直接進入主屏幕。 MapActivity的未來發布速度非常快,MapLoading活動僅在屏幕上閃爍。
這裏是MapLoading代碼(用的MapView在它被稱爲地圖的活動):
public class MapLoading extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.maploading);
new Handler().post(new Runnable() {
public void run()
{
startActivity(new Intent(MapLoading.this, Map.class));
}
});
}
}
下面是它的佈局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/maploading"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:textSize="14pt"
android:text="Loading map..."
/>
</RelativeLayout>
而且在AndroidManifest.xml中相應的節:
<activity android:label="@string/app_name"
android:name="MapLoading"
android:noHistory="true" />
謝謝,並獲得成功,並感謝您的幫助您總是提供有用的答案 – Jason 2010-11-12 13:59:25
@Jason:嘿,很高興它的工作。出於好奇,是'post()'就夠了,還是用'postDelayed()'結束了? – CommonsWare 2010-11-12 14:30:21
這對我有幫助,但我需要使用postDelayed。 – tomwilson 2011-04-11 00:57:37