活动B在活动A之前开始

时间:2013-09-30 14:55:51

标签: android xml android-manifest

我试图在我的主要活动开始之前显示一个小图像。这是我目前在android清单中的编码

<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

        <activity
            android:name=".Splash"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="com.example.test.MAINACTIVITY" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
    </application>
无论我做什么,我的启动画面都无法启动。他们分开,但从不在一起,(我仍然没有在我的飞溅图像中放置计时器,因为我想检查它是否有效而且它不起作用)

4 个答案:

答案 0 :(得分:1)

删除

<intent-filter>
    <action android:name="com.example.test.MAINACTIVITY" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

在所需时间后在启动画面中使用以下代码

Intent intent=new Intent(this,MAINACTIVITY.class);
startActivity(intent);
finish();  //To close splashscreen when MAINACTIVITY loads

以上代码以启动画面开始,经过一段时间后开始您的主要活动

答案 1 :(得分:1)

您应该从MainActivity声明中删除<intent-filter>部分,
并使用简单的intent和startActivity调用从splashActivity启动MainActivity。

答案 2 :(得分:1)

试试这个。   

        <activity
            android:name=".Splash"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".MainActivity" >
        </activity>
    </application>

您的Splash类的代码 -

package com.example.test;
import android.app.Activity; 
import android.os.Bundle; 
public class Splash extends Activity 
{ 
@Override 
protected void onCreate(Bundle savedInstanceState) 
{ // TODO Auto-generated method stub 
super.onCreate(savedInstanceState); 
setContentView(R.layout.splash); 

final Handler handle = new Handler();
Runnable delay = new Runnable() {
public void run() {
startActivity(new Intent(Splash.this, MainActivity.class));
                finish();
            }
        };
        handle.postDelayed(delay,5000);
} 
}

延迟下一个意图5秒。你可以根据你的时间来设定时间。

答案 3 :(得分:0)

使用此:

<activity
        android:name=".Splash"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".MainActivity" >
    </activity>
</application>

和这:

public class Splash extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.splash);

    final Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
        public void run() {
            Intent mInHome = new Intent(Splash.this, MainActivity.class);
            Splash.this.startActivity(mInHome);
            Splash.this.finish();
        }
    }, 3000);
}
}