2013-07-14 5 views
0

EDIT: Исправлена ​​моя основная проблема. Теперь у меня возникают проблемы с открытием одного занятия и переходом к следующему. По моему мнению, манифест говорит «.Main», чтобы открыть файл, открывающий файл splash.xml. Команда sleep лежит на этом в течение 5 секунд, чем на «.menu», и это открывает main.xml. Однако, когда я запускаю это приложение в эмуляторе, только main.xml показывает и пропускает 5-секундное введение.Android Sleep() не работает

Вот мои страницы кода:

>**Main.java** 

>package com.pooks.thebasics; 

>import android.os.Bundle; 
>import android.app.Activity; 
import android.content.Intent; 

>public class Main extends Activity { 
> 
    @Override 
    protected void onCreate(Bundle TravisIsAwesome) { 
     super.onCreate(TravisIsAwesome); 
     setContentView(R.layout.splash); 
     Thread logoTimer = new Thread(){ 
      public void run(){ 
       try{ 
        sleep(5000); 
        Intent menuIntent = new Intent("com.pooks.thebasics.MENU"); 
        startActivity(menuIntent); 
       } catch (InterruptedException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
>    
       finally{ 
        finish(); 
       } 
      } 
     }; 
     logoTimer.start(); 
    } 
} 

    **splash.xml** 

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

     </LinearLayout> 



>**menu.java** 
> 
    package com.pooks.thebasics; 
    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.main); 
     } 

     @Override 
     protected void onPause() { 
      // TODO Auto-generated method stub 
      super.onPause(); 
     } 
    } 



>**main.xml** 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_gravity="center" 
     android:background="@drawable/background1" 
     android:orientation="vertical" > 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="fill_parent" 
      android:layout_height="54dp" 
      android:gravity="center" 
      android:height="25dp" 
      android:lines="1" 
      android:paddingBottom="@dimen/activity_horizontal_margin" 
      android:paddingRight="@dimen/activity_vertical_margin" 
      android:paddingTop="@dimen/activity_vertical_margin" 
      android:text="@string/hello_world" 
      android:textAppearance="?android:attr/textAppearanceSmallInverse" 
      android:textStyle="bold" 
      android:typeface="serif" /> 

     <TextView 
      android:id="@+id/textView2" 
      android:layout_width="fill_parent" 
      android:layout_height="54dp" 
      android:height="25dp" 
      android:lines="1" 
      android:paddingBottom="@dimen/activity_horizontal_margin" 
      android:paddingRight="@dimen/activity_vertical_margin" 
      android:paddingTop="@dimen/activity_vertical_margin" 
      android:text="I&apos;m pookie jeans" 
      android:textAppearance="?android:attr/textAppearanceSmallInverse" 
      android:textStyle="bold" 
      android:typeface="serif" 
      android:gravity="center" /> 

     <Button 
      android:layout_width="224dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:gravity="center" 
      android:text="Button 1" 
      android:textSize="25dp" 
      android:textStyle="bold" /> 

    </LinearLayout> 



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

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

     <application 
      android:allowBackup="true" 
      android:icon="@drawable/ic_launcher" 
      android:label="@string/app_name" 
      android:theme="@style/AppTheme" > 
      <activity 
       android:name="com.pooks.thebasics.main" 
       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="com.pooks.thebasics.menu" 
       android:label="@string/app_name" > 
       <intent-filter> 
        <action android:name="com.pooks.thebasics.MENU" /> 

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

    </manifest> 

Код не может быть лучшим кодом. Но он работал в какой-то момент. Когда я собрал все это вместе, то, когда он начал крушить. Опять же, любая помощь будет оценена.

+3

Если у вас есть аварии, разместить трассировки стека из LogCat. – Karakuri

+0

Исправлена ​​большая часть проблемы. Я читал, что вы хотите, чтобы ваши имена java начинались с заглавной буквы, я изменил ее, но не изменил ее в своем манифесте или действии java. Я также прочитал, что вы хотите конденсировать имя android: name, поэтому я взял имя пакета и просто поместил «.Menu» или «.Main». Это исправило это. Теперь 5-секундный сон не работает. Любая помощь здесь? – Patrick

+1

Вы, безусловно, не хотите, чтобы ваши имена java начинались с большой буквы. Вы хотите, чтобы имена классов начинались с кепок, но строчные буквы для экземпляров классов и имен полей. Независимо от того, что вы делаете, не пытайтесь назвать класс или поле с небуквенным символом в качестве первого символа. – MarsAtomic

ответ

0

Если вы хотите начать свое второе действие через определенное время, то зачем использовать сон? Вы можете использовать Timer для достижения того же. Кроме того, вы намеренно создаете неправильно. Вам нужно указать родительский контекст, который пытается создать новую активность.

Попробуйте это:

new Timer().schedule(new TimerTask() { 

    @Override 
    public void run() { 
     // TODO Auto-generated method stub 
     Intent menuIntent = new Intent(Main.this, menu.class); 
     startActivity(menuIntent); 
    } 
}, 5000); 
0

Я нашел свои ошибки. У меня были разные несоответствия. Когда я исправил несоответствия, я получил его на работу. Во-вторых, я вспомнил, что делал. Первое действие появляется только при запуске приложения. ЕСЛИ я открою его в первый раз, а затем нажмите кнопку «домой», приложение все еще открыто, только в фоновом режиме. Это была логическая ошибка, к счастью, синтаксические ошибки - это боль!