Активность экрана-заставки игнорируется при возобновлении работы приложения — Android

Мне интересно, почему мое приложение игнорирует мою активность SplashScreen.java при возобновлении работы приложения. Если я закрою его кнопкой «Назад», при запуске появится заставка, но если я выйду с помощью кнопки «Домой», действие SplashScreen не вызывается... :(

Я даже добавил событие onResume, но экран-заставка по-прежнему не появляется при возобновлении моего приложения. Спасибо!!

SplashScreen.java

public class Splash extends Activity {

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

    }

    protected void onResume(){
        super.onResume();
        spashStart();
        }   


    private void spashStart() {
        Thread splashTimer = new Thread() {
            public void run(){
                try{
                    sleep(5000);
                    Intent mainActivity = new Intent("com.exploreca.tourfinder.MainActivity");
                    startActivity(mainActivity);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } finally {
                  finish();
                }
            }
        };
        splashTimer.start();
    }

}

Майфест:

...

<uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="19" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/scena_logo"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" > 
        <activity
            android:name="com.exploreca.tourfinder.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.exploreca.tourfinder.MainActivity" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>            
        </activity>
        <activity 
            android:name=".SettingsActivity"
            android:parentActivityName="com.exploreca.tourfinder.MainActivity">            
        </activity>
        <activity 
            android:name=".TourDetailActivity"
            android:parentActivityName="com.exploreca.tourfinder.MainActivity">            
        </activity>  
        <activity 
            android:name=".NotificationDetails"
            android:label="@string/title_activity_notifDetails_title"
            android:parentActivityName="com.exploreca.tourfinder.MainActivity">            
        </activity>  
        <activity 
            android:name=".SavedEvents"
            android:label="@string/title_activity_SavedEvents" 
            android:parentActivityName="com.exploreca.tourfinder.MainActivity">            
        </activity>    
        <activity 
            android:name=".FollowList"
            android:label="@string/title_activity_Urmarite" 
            android:parentActivityName="com.exploreca.tourfinder.MainActivity">            
        </activity>    


...

person Edmond Tamas    schedule 25.04.2014    source источник
comment
Вы хотите всегда показывать заставку, когда пользователь запускает/возвращается в ваше приложение?   -  person eleven    schedule 25.04.2014
comment
if I exit with the home button, нет, ты не выходишь. Вы помещаете свое приложение в фоновом режиме.   -  person Phantômaxx    schedule 25.04.2014
comment
Разозлить собственных пользователей — неправильная стратегия. Вы должны показывать заставку только при запуске приложения. Возобновление, как следует из названия, должно возобновить работу приложения в том месте, где пользователь его оставил.   -  person Marcin Orlowski    schedule 25.04.2014
comment
@Marcin Orlowski - Возможно, ты прав, спасибо.   -  person Edmond Tamas    schedule 25.04.2014


Ответы (2)


когда вы нажимаете кнопку «Назад», на самом деле действие завершается, и когда вы возвращаетесь, отображается заставка. Это потому, что снова запускается приложение.

Когда вы нажимаете кнопку «Домой», действие не завершается, а переходит в фоновый режим, а когда вы открываете приложение один раз, то такое же действие покупается впереди. поэтому заставка не отображается.

как это работает на протяжении всего жизненного цикла приложения.

Попробуйте вызвать метод finish(); в onPause активности. Так что все время будет доделываться. Или попробуйте добавить noHistory к активности в манифесте. Надеюсь, что это поможет вам.

person Sreedev R    schedule 25.04.2014
comment
Спасибо за предложение! - person Edmond Tamas; 25.04.2014
comment
Это неправильный способ управления приложением, я думаю, что у меня есть -1, поэтому, когда вы делаете это так, пожалуйста, обратите внимание, что это неправильный метод для решения этой проблемы, даже если это удовлетворяет вашим требованиям. Приложение не должно запускаться снова и снова. - person Sreedev R; 25.04.2014

Попробуй это..

изменить это..

Intent mainActivity = new Intent("com.exploreca.tourfinder.MainActivity");
startActivity(mainActivity);

to

Intent mainActivity = new Intent(Splash.this,MainActivity.class);
startActivity(mainActivity);
person Hariharan    schedule 25.04.2014
comment
привет @Hariharan - я добавил, но без разницы. :( - person Edmond Tamas; 25.04.2014