Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在安卓系统中,我如何检查堆栈上是否还有其他哪些活动保持打开状态?_Java_Android_Android Layout_Android Intent_Android Activity - Fatal编程技术网

Java 在安卓系统中,我如何检查堆栈上是否还有其他哪些活动保持打开状态?

Java 在安卓系统中,我如何检查堆栈上是否还有其他哪些活动保持打开状态?,java,android,android-layout,android-intent,android-activity,Java,Android,Android Layout,Android Intent,Android Activity,基本上我想做一个if语句,如下所示,但我不知道怎么做 if (Android_Classes_Left_Open){ Intent a = new Intent(SplashScreen.this, 2ndtoTopElement.class); startActivity(a); } else { Intent a = new Intent(SplashScreen.this, Other.class); startActivity(a); } 到目前为止,我

基本上我想做一个if语句,如下所示,但我不知道怎么做

if (Android_Classes_Left_Open){
    Intent a = new Intent(SplashScreen.this, 2ndtoTopElement.class);
    startActivity(a);
} else {
    Intent a = new Intent(SplashScreen.this, Other.class);
    startActivity(a);
}
到目前为止,我的SplashScreen代码:

public class SplashScreen extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash);

        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                Intent i = new Intent(SplashScreen.this, First.class);
                startActivity(i);

                finish();
            }
        }, 3000);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.splash, menu);
        return true;
    }
}

这样做的目的是,如果用户将应用程序移动到后台,那么他们将返回到最近打开的活动,而不是每次都从头开始启动应用程序。我如何才能做到这一点?

您的解决方案是,无论何时您进入任何新活动

1.)您必须将此活动的名称保存在共享首选项中(在同一个键上)。您必须在每个活动或BaseActivity的onResume()中执行此操作

2.)每次启动屏幕时,您必须检查此活动的名称,并将其传递给您


因此,每次启动屏幕完成后,您都会看到最后一个打开的活动。

什么是“打开的类”?呃,这不是Android中的默认行为吗?当您使用Android应用程序时,单击给定的按钮打开另一个活动。然后,它将以前的活动保留在后台(打开的活动)。我有一个启动屏幕,似乎每次打开Android应用程序时都会打开。因此,我试图完成的是,让启动屏幕检查最近使用的活动(保留在后台),如果有的话。然后引导用户去做,而不是其他你不“开课”,你就开始活动。也许这会澄清问题:OP想要的是标准的、默认的Android行为。他不需要通过编程来获得它。有时候你需要从字里行间读。这可能是问题的答案,但实际上并不是OP想要或需要的。@DavidWasser那么你的意思是说我应该在答案中包含代码吗?不。我的意思是,这不是对OP问题的有益回答。这也许能回答他提出的问题,但不是他所需要的。如果OP(或其他阅读本文的人)效仿你的例子,他们走错了路(IMHO)。只要我的2美分。