1

我有两个活动,但我想在应用程序启动时应用一个条件,如果一个为真,则启动第一个活动,否则启动第二个活动。现在我正在通过启动第三个活动来显示一些受欢迎的内容并检查背景中的值......然后调用适当的活动。我认为必须有一些标准的方法来做到这一点。和平。

4

2 回答 2

2

由于您需要在清单中指定启动活动,因此您始终可以启动第一个活动,检查您的条件onCreate()以及是否需要启动第二个 - 启动第二个并调用finish()第一个活动。

否则通常人们使用启动活动来检查启动时的所有条件(这是您当前的解决方案)。

于 2012-08-25T04:40:47.197 回答
2

不需要第三Activity个人来检查情况。

如果您只是让您的 MAIN/LAUNCHERActivity检查条件作为它所做的第一件事onCreate(...)(但在调用 之后super.onCreate(...)),它可以继续或调用startActivity(...)另一个Activity并立即调用finish()自我终止。

这样,Activity如果条件要求启动第二个,则永远不会看到第一个Activity

例子..

public class FirstActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Don't even set the content view at this point
        // we want to be invisible for the moment

        // Pseudo-code check for condition
        if (!runMe) {
            Intent i = new Intent(this, SecondActivity.class);
            startActivity(i);
            finish();
        }
        else {
            // Continue as normal
            setContentView(R.layout.main);
            ...
        }
    }
}
于 2012-08-25T19:37:32.230 回答