无法更改应用程序的启动活动 - Android

时间:2014-03-19 11:38:02

标签: android android-activity android-manifest

我无法更改应用程序的启动活动。在开始我的开始活动是com.example.image_changer.MainActivity并且我的应用程序正确运行。然后,我将启动活动从MainActivity更改为com.example.image_changer.Splash。但是我的应用程序没有启动com.example.image_changer.Splash活动。

我希望com.example.image_changer.Splash作为我的应用程序的开始活动。

我试过这些解决方案:

1。在eclipse中,我更改了此设置:运行菜单 - >调试配置---->在我的应用程序---> Android选项卡--->启动操作---->启动(单选按钮) ---->选择(从下拉菜单中)---> com.example.image_changer.Splash



2.互联网搜索:

我已尝试在此链接上提供的所有解决方案:Change application's starting activity

在此链接中zeh(用户)发表评论,这可能与我的问题看起来一样,但没人发布更好的解决方案。

注意 - 当我运行我的程序然后它运行splash.java但不在模拟器屏幕上显示,我知道这是因为我在splash.java中的线程中编码System.out.println();并且当我运行我的应用程序时它每次都在控制台中打印字符串。

那么如何解决这个问题呢?

这是我的清单:          

<uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="17" />

<application
    android:allowBackup="true"
    android:icon="@drawable/imagechanger"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.image_changer.Splash"
          >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="com.example.image_changer.MainActivity1"></activity>
    <activity android:name="com.example.image_changer.GamesFragment"></activity>
    <activity android:name="com.example.image_changer.MoviesFragment"></activity>
    <activity android:name="com.example.image_changer.TabsPagerAdapter"></activity>
    <activity android:name="com.example.image_changer.TopRatedFragment"></activity>
    <activity android:name="com.example.image_changer.Imageswipe"></activity>
    <activity android:name="com.example.image_changer.Mapview"></activity>

    <activity
        android:name="com.example.image_changer.MainActivity"
        android:label="@string/app_name"></activity>


</application>

</manifest>

这是我的Splash.java类文件

package com.example.image_changer;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.Window;
import android.view.WindowManager;

public class Splash extends Activity  {
/** Called when the activity is first created. */
 private Thread mSplashThread;    

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
      requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
        WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_splash);
        //setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 

        final Splash sPlashScreen = this;   

        // The thread to wait for splash screen events
        mSplashThread =  new Thread(){
            @Override
            public void run(){
                try {
                    synchronized(this){
                        // Wait given period of time or exit on touch
                        wait(2500);

                    }
                }
                catch(InterruptedException ex){                    
                }



                // Run next activity

                Intent intent = new Intent();
                intent.setClass(sPlashScreen,MainActivity.class);
                System.out.println("your are in the intent");
                startActivity(intent);


                finish();
            }
        };

        mSplashThread.start();        
    }

    /**
     * Processes splash screen touch events
     */
    @Override
    public boolean onTouchEvent(MotionEvent evt)
    {
        if(evt.getAction() == MotionEvent.ACTION_DOWN)
        {
            synchronized(mSplashThread){
                mSplashThread.notifyAll();
            }
        }
        return true;
    }  
}

1 个答案:

答案 0 :(得分:0)

将您的线程代码更新为此。

new Handler().postDelayed(new Runnable() {
    public void run() {
                // Run next activity

                Intent intent = new Intent();
                intent.setClass(sPlashScreen,MainActivity.class);
                System.out.println("your are in the intent");
                startActivity(intent);


                finish();
       }
}, 2500);