如何检查我以前的活动是否存在?

时间:2016-05-25 10:45:44

标签: android android-activity

在我的应用程序中,有3个活动,它们的调用顺序是这样的......

启动活动--->仪表板活动--->列出活动

如果它是这样的话,那么如果按下List活动上的后退按钮,它将按照上面的相反顺序。

有一个要求,用户可以直接从Splash导航到List Activity(跳过仪表板活动)现在当用户点击List Activity上的按钮时,我不想显示活动中没有的Dashboard Activity栈。

所以请用最好的方法帮助我。

4 个答案:

答案 0 :(得分:1)

传递一个布尔值,意图从其他任何一个转到List Activity。使用onBackPressed检查布尔值是true还是false以跳过Dashboard Activity。 然后,如果为true,则加载仪表板活动的新意图和finish();列表活动。

答案 1 :(得分:0)

您可以在转到

时直接从列表活动中获取启动 来自ListActivity致电Dashboard Activity

finish()

Intent i = new Intent(DashboardActivity.this,ListActivity);
startActivtiy(i);
finish();

答案 2 :(得分:0)

你必须从Splash和DashboardActiviy传递类名作为额外的意图。

在List Activity中,您必须使用getIntent()获取类名。

当用户点击后退按钮时,您需要根据您可以做出决定来检查班级名称。

    if(name.equalIgnorecase(DashboardActivit.class.getSimpleName()){
      //Add your intent
    }else{
      //
    }

这可能会为您提供明确的解决方案。试一试

答案 3 :(得分:0)

使用startAcvitiyForResult

开始您的内心活动
Intent i = new Intent(this, Activity_2.class);
startActivityForResult(i, 1);

并在你的内心活动中

@Override
public void onBackPressed ()
{
    finish();
}

在内部活动结束后,您也可以根据自己的喜好在外部活动中进行操作

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == 1) {
        if(resultCode == 1){
            Log.i("TEST", "RESULT_OK");
        }
        else {
            return;
        }
    }
}