android中的活动流

android中的活动流,android,android-activity,splash-screen,intentfilter,Android,Android Activity,Splash Screen,Intentfilter,对不起,如果以前有人问过这个问题。我想做的是当应用程序启动时,屏幕上会出现闪屏,3秒钟后,我的main活动就会运行。但当我按下后退按钮时,它会在启动屏幕上再次返回我。因此,我的问题是如何控制活动流,使其不会再次出现在启动屏幕上 manifest file <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_nam

对不起,如果以前有人问过这个问题。我想做的是当应用程序启动时,屏幕上会出现闪屏,3秒钟后,我的
main活动就会运行。但当我按下后退按钮时,它会在启动屏幕上再次返回我。因此,我的问题是如何控制活动流,使其不会再次出现在
启动屏幕上

manifest file 

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">

    </activity>
    <activity android:name=".SplashScreen">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

若有很多活动,我希望我的mainactivity是父活动,若用户在父活动上,并且用户按back,那个么启动屏幕就不会出现。有没有办法通过清单来实现这一点?您必须完成此活动

Intent i = new Intent(SplashActivity.this, MainActivity.class);
startActivity(i);
finish();

当您将您的
意图
添加到
main活动
中时,在
startActivity(Intent)
之后,写入
finish()

您可以这样做:

public class SplashActivity extends AppCompatActivity {

// Splash screen timer
private static final int SPLASH_TIME_OUT = 3000;

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

    new Handler().postDelayed(new Runnable() {

        /*
         * Showing splash screen with a timer. This will be useful when you
         * want to show case your app logo / company
         */

        @Override
        public void run() {
            // This method will be executed once the timer is over
            // Start your app main activity
            Intent i = new Intent(SplashActivity.this, HomeMainActivity.class);
            startActivity(i);

            // close instance of this activity
            this.finish();
        }
    }, SPLASH_TIME_OUT);
}}

当您通过intent遍历到
MainActivity
时,请在此处完成
SplashActivity
,如:

Intent intent = new Intent(SplashActivity.this, MainActivity.class);
          startActivity(intent);
          finish();
@费萨拉姆


在mainActivity override方法
onBackPressed()
中,完成活动

@Override
public void onBackPressed() {
    this.finish();
}
               // Start your app main activity
                Intent i = new Intent(SplashScreen.this, MainActivity.class);
                startActivity(i);

                // close this activity
                finish();

在顶部的SplashScreen override menthod中:

@Override
 public void onStop() {
     finish();
    }
当您单击MainaCivility中的后退按钮时,应用程序将退出。
此外,您还可以在Backpressed MainActivity上处理menthod。

当您移动到main activity时,只需完成splash activity即可

@Override
public void onBackPressed() {
    this.finish();
}
@Override 
public void onBackPressed() {
    if (yourLayout.canGoBack()) {
        yourlayout.goBack();
    } 
    else {
        super.onBackPressed();
    }
}
               // Start your app main activity
                Intent i = new Intent(SplashScreen.this, MainActivity.class);
                startActivity(i);

                // close this activity
                finish();
完成启动屏幕的显示后,立即放置
finish()

@Override
public void onBackPressed() {
    this.finish();
}
               // Start your app main activity
                Intent i = new Intent(SplashScreen.this, MainActivity.class);
                startActivity(i);

                // close this activity
                finish();
完成(): 当您的活动完成并应关闭时调用此选项。ActivityResult将通过onActivityResult()传播回启动您的人

代码段:

Intent intent = new Intent(SplashActivity.this, MainActivity.class);
startActivity(intent);
finish();

最简单的解决方案是:在manifest.xml中设置android:noHistory=“true”

<activity android:name=".SplashScreen"
          android:noHistory="true" 
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

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

完成您的活动调用spash activity中的startActivity(intent)后调用call this.finsh()安卓:noHistory=“true”此属性是否会破坏我的splashscreen活动?是的,肯定会。从另一个活动中按回后,它将不再可见。但每次启动应用程序时都会看到