2017-10-02 7 views
-2

Ich arbeite an einem Quellcode für Android-Apps, den ich von Github heruntergeladen habe. Der Code hat nur eine Aktivität, die die Hauptaktivität darstellt. Also habe ich beschlossen, eine weitere Aktivität zu erstellen, um jedes Mal einen Begrüßungsbildschirm anzuzeigen, wenn der Benutzer die Anwendung ausführt, aber nach dem Erstellen des Begrüßungsbildschirms wird die App nicht mehr ausgeführt.App möchte nach dem Erstellen eines Begrüßungsbildschirms nicht gestartet werden

Ein Ausschnitt der Splash Aktivitätsklasse:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.activity_splash); 
    Thread myThread = new Thread() { 
     @Override 
     public void run() { 
      try { 
       sleep(2000); 
       Intent intent = new Intent(getApplicationContext(), 
         MainActivity.class); 
       startActivity(intent); 
       finish(); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 
     } 
    }; 
    myThread.start(); 
    //..... 
} 

Und das ist die AndroidManifest.xml Datei:

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

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme"> 
    <activity 
     android:name=".SplashActivity" 
     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:configChanges="orientation|keyboardHidden|screenSize" 
     android:label="@string/title_activity_splash" 
     android:parentActivityName=".SplashActivity" 
     android:theme="@style/FullscreenTheme"> 

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

     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="com.csab.soundboard.MainActivity" /> 
    </activity> 
</application> 

</manifest> 

Dies ist, was ich bekomme, wenn ich die App auf ausführen ein virtuelles Gerät:

Screenshot

+4

fügen Sie die logcat und anzeigen Nachricht Android Monitor Übersicht –

Antwort

0

Sie benötigen einen Handler für startActivity(intent);

//........ 
    //Handles the thread result of the Backup being executed. 
    final Handler handler = new Handler() 
    { 
     @Override 
     public void handleMessage(Message msg) 
     { 
      Intent intent = new Intent(getApplicationContext(), 
        MainActivity.class); 
      startActivity(intent); 
      finish(); 

     } 
    }; 

    Thread myThread = new Thread() { 
    @Override 
    public void run() { 
     try { 
      sleep(2000); 
      handler.sendEmptyMessage(0); 
     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } 
    } 
    }; 
    myThread.start(); 
    //...... 
0

Verwenden Handler statt Thread.

0

Löschen Sie einfach <intent filter><intent filter/> aus Ihrer MainActivity-Klasse in Manifest. Das muss funktionieren

Verwandte Themen