【发布时间】:2013-11-19 16:37:43
【问题描述】:
目前,我的应用会加载启动画面并保持这种状态。我认为我的主要问题是 Android 生命周期。我将启动页面作为 onCreate,主要活动(以下面的私有 final 开头)也是 onCreate,但我认为这是不正确的。此外,每个活动都在一个 java 文件中。这个对吗?如何让我的启动页面加载、杀死自己,然后加载我的主要活动?
这是我的 MainActivity.java:
package com.deliveryfor;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import com.google.android.gms.maps.CameraUpdate;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.model.LatLng;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
Thread Timer = new Thread() {
public void run() {
try { sleep(3000);
startActivity (new Intent ("android.intent.action.SPLASH"));
} catch (InterruptedException e) {
e.printStackTrace();
}
finally {
finish();
}
}
};
Timer.start();
}
private final LatLng LOCATION_STATE = new LatLng(49.27645, -122.917587);
private final LatLng LOCATION_CITY = new LatLng(49.187500, -122.849000);
private final LatLng LOCATION_YOU = new LatLng(49.187500, -122.849000);
private GoogleMap map;
protected void onCreate() {
super.onCreate(null);
setContentView(R.layout.activity_main);
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
map.setMyLocationEnabled(true);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void onClick_State(View v) {
map.setMapType(GoogleMap.MAP_TYPE_HYBRID);
CameraUpdate update = CameraUpdateFactory.newLatLngZoom(LOCATION_YOU, 9);
map.animateCamera(update);
}
public void onClick_City(View v) {
map.setMapType(GoogleMap.MAP_TYPE_TERRAIN);
CameraUpdate update = CameraUpdateFactory.newLatLngZoom(LOCATION_CITY, 16);
map.animateCamera(update);
}
public void onClick_You(View v) {
map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
CameraUpdate update = CameraUpdateFactory.newLatLngZoom(LOCATION_STATE, 18);
map.animateCamera(update);
}
}
这里是 Menu.java(启动页面):
package com.deliveryfor;
import android.app.Activity;
import android.os.Bundle;
public class Menu extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView (R.layout.splash); }
}
【问题讨论】:
标签: java android eclipse splash-screen android-lifecycle