java - 如何从初始页面过渡到主要 Activity ?

标签 java android eclipse splash-screen android-lifecycle

目前,我的应用程序加载启动屏幕并保持这种状态。我认为我的主要问题是 Android 生命周期。我将启动页面作为 onCreate,主要 Activity (从下面的 private Final 开始)也是 onCreate,但我认为这是不正确的。此外,每个 Activity 都在一个 java 文件中。它是否正确?如何加载我的初始页面,终止其自身,然后加载我的主要 Activity ?

这是我的 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); }




    }

最佳答案

您必须将 Splash Activity 创建为经典 Activity,并且必须在 Manifest 中声明它将是第一个启动的 Activity。 将此行添加到 Activity 启动标记中:

<intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

然后,在 SplashActivity.java 的 onCreate() 中,添加自动启动 MainActivity 的代码。 我像这样使用 TimerTask:

Timer timer = new Timer();
        timer.schedule(new TimerTask(){

            @Override
            public void run() {
                // TODO Auto-generated method stub

                Intent toHomePage = new Intent(context,MainActivity.class);
                startActivity(toHomePage);
                finish();
            }}, 5000);

5000 表示 Intent toHomePage 将在 5 秒后启动。 希望对你有帮助!

关于java - 如何从初始页面过渡到主要 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20077030/

相关文章:

java - 这段代码有什么问题吗?它没有过滤集合!

java - 为什么包装类、字符串...是final的?

android - 保存的照片对于图库不可见

android - 如何在两台电脑上使用一个Android Studio项目?

android - 在 Android 中找不到使用 DigestUtils 的方法

java - 右键单击 Sonar 选项不可用

Java 控制台应用程序

java - 如何使用捕捉到道路在道路 api 中请求?

eclipse - 导入 javax.persistence 无法解析

android - 构造函数之后的对象为空