2013-06-13 2 views
0

Я делаю всплеск в своем приложении для Android, но если я попытаюсь запустить операцию в Run(), я получаю, что ошибка приложения неожиданно прекратилась, если вместо этого использовать setContentView startActivity, ошибка также возникает. Даже если я использую SplashScreen.this.startActivity, а не только startActivity, я получаю ошибку. Я попытался использовать TimerTask вместо обработчика, но это происходит так же, что я делаю неправильно?Неожиданная ошибка при переключении активности в android

package name.appname; 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.os.Handler; 

public class SplashScreen extends Activity{ 
@Override 
    public void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.splash); 
     Handler handler = new Handler(); 
     handler.postDelayed(getRunnableStartApp(), 1500); 
    }//public void onCreate(Bundle savedInstanceState) 

public Runnable getRunnableStartApp(){ 
    return new Runnable(){ 
     public void run(){ 
      startActivity(new Intent(SplashScreen.this, MainActivity.class));//when i quit this line, no error happens... 
      finish(); 
     }//public void run() 
    };//new Runnable() 
}//public Runnable getRunnableStartApp() 
}//public class SplashScreen extends Activity 

Это Manifest:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="name.appname" 
     android:versionCode="1" 
     android:versionName="1.0"> 
    <application android:allowBackup="false" android:label="@string/app_name"> 
     <activity android:name="SplashScreen" 
        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> 

Я поймала ошибку: android.content.ActivityNotFoundException, но не знаю, почему не происходит, что

+0

показать нам ваш файл манифеста. сделал запись для деятельности в манифесте? – Raghunandan

+0

Какая ошибка или исключение вы получаете ...? –

+0

Как правило, вы используете Runnable и Run() для запуска активности в новом потоке. Если вам не нужен новый поток, тогда startactivity будет достаточным: когда новая активность закончится, активность «start» (SplashScreen) снова получит фокус. Соответствует ли это вашим потребностям? – gssi

ответ

1

Добавьте ниже в файле манифеста. Отсутствует запись для MainActivity

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

также изменить

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

Примечание: Некоторые люди считают, используя экранную заставку как зло, если он ничего не делает. Проверьте ниже

http://cyrilmottier.com/2012/05/03/splash-screens-are-evil-dont-use-them/

+0

Глупый из меня: p – belphegorsp

+0

im собираюсь сделать этот всплеск информацией о загрузке, не заботясь о Raghunandan – belphegorsp

+0

Я просто разместил ссылку в качестве предложения, если вы в порядке с всплеском, продолжайте с ней – Raghunandan

0

Используйте Runnable внутри TimerTask.
У меня также есть SplashScreen для моего приложения & он отлично работает.

+0

почему вы думаете, что таймер и timertask лучше, а не обработчик? – Raghunandan

+0

Потому что его работы отлично подходят для меня. – Vijju

+0

даже обработчик отлично работает – Raghunandan

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