2012-06-12 2 views
-1

Возможные Дублировать:
Splash in Android not workingSplashScreen обыкновение Гото основного приложения (Android)

Мой SplashScreen остается по-прежнему. После этого основное приложение не запускается. Вот код, я использую: У меня есть три файла: Splash.xml, Splash.java и SplashNew.java

 package com.timchecklist; 

import android.app.Activity; 
import android.content.Intent; 
import android.graphics.Color; 
import android.os.Bundle; 

public class Splash extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     Thread Timer = new Thread() { 
      public void run() { 

       try { 
        sleep(3000); 
        startActivity(new Intent("com.timchecklist.SPLASHNEW")); 

       } catch (InterruptedException e) { 
        e.printStackTrace(); 
       } finally { 
        finish(); 
       } 
      } 
     }; 
     Timer.start(); 
    } 

} 

SplashNew.java

package com.timchecklist; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Window; 

public class SplashNew extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.splash); 

    } 

} 

Splash.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:background="@drawable/pic1" 
    android:gravity="center" 
    android:orientation="vertical" > 

</LinearLayout> 

AndroidManifest.xml 

    <?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.timchecklist" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk android:minSdkVersion="7" /> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 
     <activity 
      android:name=".TimCheckListActivity" 
      android:label="@string/app_name" 
      android:theme="@android:style/Theme.NoTitleBar" > 
     </activity> 
     <activity 
      android:name=".SplashNew" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

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

</manifest> 

Любые идеи/помощь?

Ty парни

ответ

2

Пожалуйста, измените startActivity(new Intent("com.timchecklist.SPLASHNEW")); на startActivity(new Intent(SplashNew.class));

+0

это не проблема. проблема в том, что он не будет главным. –

+0

SplashNew является основным? Вы не можете пойти в SplashNew на своем пути, потому что «com.timchecklist.SPLASHNEW» не существует. Я забыл, как создать этот короткий отрезок, но я предпочитаю этот путь. Просто проверьте это. –

+0

нет main is: TimCheckListActivity.java –

0

Пожалуйста, не заставляйте ваши пользователи ждать 3 секунды на экране заставки, если у вас нет никакой работы, которая будет сделана в течение этого времени. Если есть работа, которую вы должны сделать, чтобы ваше приложение затем выполняло эту работу в фоновом режиме, пока вы показываете заставку. Если вы заставляете своих пользователей ждать 3 секунды без всякой причины, когда они используют ваше приложение, они будут недовольны.

Вот хороший post about splashscreens с примером способа их реализации.

Но я серьезно не могу подчеркнуть достаточно, если у вас нет веских оснований для того, чтобы пользователь подождал, тогда НЕ заставляйте их ждать.

EDIT: Кроме того, если вы настаиваете на заставлять пользователей ждать для бессмысленного экрана всплеск по крайней мере реализовать какой-нибудь способ, чтобы проверить, чтобы увидеть, если пользователь нажал назад (выход из вашего приложения) во время всплеска, и если они не вызывали startActivity(). Теперь, когда у вас есть это, даже если пользователь нажимает обратно во время всплеска (что они будут делать, если вы заставите их ждать 3 секунды для без причины.), Ваш поток по-прежнему будет называть startActivity(), который будет падать вашей деятельности, даже если пользователь вышел, нажав кнопку «Назад». Ссылка выше говорит об этом.

Смежные вопросы