Java 如何从初始页面过渡到主要活动?

Java 如何从初始页面过渡到主要活动?,java,android,eclipse,splash-screen,android-lifecycle,Java,Android,Eclipse,Splash Screen,Android Lifecycle,目前,我的应用程序加载启动屏幕并保持这种状态。我认为我的主要问题是Android的生命周期。我将启动页面作为onCreate,主要活动(从下面的private final开始)也是onCreate,但我认为这不正确。此外,每个活动都位于一个java文件中。这是正确的吗?我如何让我的启动页面加载,自杀,然后加载我的主要活动 下面是我的MainActivity.java: package com.deliveryfor; import android.app.Activity; import an

目前,我的应用程序加载启动屏幕并保持这种状态。我认为我的主要问题是Android的生命周期。我将启动页面作为onCreate,主要活动(从下面的private 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);

    }

}
public class MainActivity extends AppCompatActivity {
    oAuth_Model oAuth_model;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);

        showBasicSplash();
    }
    private void showBasicSplash() {
        new Thread(){
            @Override
            public void run() {
                super.run();

                try {
                    Thread.sleep(1500);
                    handler.sendEmptyMessage(0);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }.start();
    }

    @SuppressLint("HandlerLeak")
    Handler handler = new Handler(){
        public void handleMessage(Message m){
            if (getBoolean(Constant.AFTERLANG)){
                Intent intent = new Intent(MainActivity.this, Landing_three.class);
                startActivity(intent);
                finish();
            }else {
                Intent intent = new Intent(MainActivity.this, Activity_Sec.class);
                startActivity(intent);
                finish();
            }
        }
    };
}
下面是Menu.java(启动页面):


您需要创建启动MainActivity的意图。现在,菜单的代码除了创建它的UI之外什么都不做。描述了如何执行此操作

您将需要以下内容:

Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
您可能还想重新考虑完全使用闪屏,除非您有令人信服的理由(事实似乎并非如此)。详细信息请阅读帖子。以下是我觉得很有趣的摘录:

启动屏幕可用于在启动前使资源可用 应用程序启动。就我个人而言,我认为98%的人没有必要这样做 案件。它对于积极依赖重负载的应用程序可能很有用 资源,如谷歌地球,天空地图,或游戏,但这不是 适用于简单的实用程序应用程序,如提要阅读器、社交网站 网络应用程序、新闻阅读器等。您不应该需要网络 启动时连接,也不会进行繁重的计算


您需要创建启动MainActivity的意图。现在,菜单的代码除了创建它的UI之外什么都不做。描述了如何执行此操作

您将需要以下内容:

Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
您可能还想重新考虑完全使用闪屏,除非您有令人信服的理由(事实似乎并非如此)。详细信息请阅读帖子。以下是我觉得很有趣的摘录:

启动屏幕可用于在启动前使资源可用 应用程序启动。就我个人而言,我认为98%的人没有必要这样做 案件。它对于积极依赖重负载的应用程序可能很有用 资源,如谷歌地球,天空地图,或游戏,但这不是 适用于简单的实用程序应用程序,如提要阅读器、社交网站 网络应用程序、新闻阅读器等。您不应该需要网络 启动时连接,也不会进行繁重的计算


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

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

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
5000
意味着Intent toHomePage将在5秒后启动。
希望对你有帮助

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

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

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
5000
意味着Intent toHomePage将在5秒后启动。 希望对你有帮助

我这样使用它:

public class SplashActivity extends Activity{
    private final static long SPLASH_TIME_OUT = 2000;

    // SplashActivity --> serves as entry-point for the app at several situations
    @Override
    protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_splash);                      
         new Handler().postDelayed(new Runnable() {

              @Override
              public void run() {

                Intent i = new Intent(SplashActivity.this, RegisterActivity.class);
                startActivity(i);
                // close this activity
                finish();
              }
        }, SPLASH_TIME_OUT);
    }   
}
我是这样使用它的:

public class SplashActivity extends Activity{
    private final static long SPLASH_TIME_OUT = 2000;

    // SplashActivity --> serves as entry-point for the app at several situations
    @Override
    protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_splash);                      
         new Handler().postDelayed(new Runnable() {

              @Override
              public void run() {

                Intent i = new Intent(SplashActivity.this, RegisterActivity.class);
                startActivity(i);
                // close this activity
                finish();
              }
        }, SPLASH_TIME_OUT);
    }   
}

我将此活动作为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);

    }

}
public class MainActivity extends AppCompatActivity {
    oAuth_Model oAuth_model;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);

        showBasicSplash();
    }
    private void showBasicSplash() {
        new Thread(){
            @Override
            public void run() {
                super.run();

                try {
                    Thread.sleep(1500);
                    handler.sendEmptyMessage(0);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }.start();
    }

    @SuppressLint("HandlerLeak")
    Handler handler = new Handler(){
        public void handleMessage(Message m){
            if (getBoolean(Constant.AFTERLANG)){
                Intent intent = new Intent(MainActivity.this, Landing_three.class);
                startActivity(intent);
                finish();
            }else {
                Intent intent = new Intent(MainActivity.this, Activity_Sec.class);
                startActivity(intent);
                finish();
            }
        }
    };
}
并将此活动添加到Manifests.xml:

<activity android:name=".MainActivity"
        android:configChanges="orientation"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </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);

    }

}
public class MainActivity extends AppCompatActivity {
    oAuth_Model oAuth_model;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);

        showBasicSplash();
    }
    private void showBasicSplash() {
        new Thread(){
            @Override
            public void run() {
                super.run();

                try {
                    Thread.sleep(1500);
                    handler.sendEmptyMessage(0);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }.start();
    }

    @SuppressLint("HandlerLeak")
    Handler handler = new Handler(){
        public void handleMessage(Message m){
            if (getBoolean(Constant.AFTERLANG)){
                Intent intent = new Intent(MainActivity.this, Landing_three.class);
                startActivity(intent);
                finish();
            }else {
                Intent intent = new Intent(MainActivity.this, Activity_Sec.class);
                startActivity(intent);
                finish();
            }
        }
    };
}
并将此活动添加到Manifests.xml:

<activity android:name=".MainActivity"
        android:configChanges="orientation"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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