android中的活动流
对不起,如果以前有人问过这个问题。我想做的是当应用程序启动时,屏幕上会出现闪屏,3秒钟后,我的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
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活动?是的,肯定会。从另一个活动中按回后,它将不再可见。但每次启动应用程序时都会看到