0

我有一个以 StartupActivity 开头的应用程序。

该 StartupActivity 启动服务,如下所示:

startService(new Intent(StartupActivity.this, SamcomService.class));

在某个时候,Service 决定广播一个 Intent,StartupActivity 会对此做出反应。Activity 在收到 INtent 时会执行以下操作:

Intent intent2 = new Intent(StartupActivity.this, DialogActivity.class); 
intent2.putExtra("Centrals", list); // list is defined elsewhere
startActivity(intent2);

如您所见,启动了一个新的 Activity,并且该 Activity 恰好有 Theme.Dialog 作为 Theme。对话框显示一个列表,用户应该在其中选择一些东西。此时,它们应该返回到第一个 Activity,即 StartupActivity。如果按 BACK,它们也应该返回到第一个 Activity。

这是 DialogActivity 的 onCreate 代码:

@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    final ArrayList<tWorks.Samcom.SICJsonProtocol.Objects.Central> list = (ArrayList<tWorks.Samcom.SICJsonProtocol.Objects.Central>)this.getIntent().getSerializableExtra("Centrals");

    // Some more stuff not necessary for this question...
    // ....
    // ....

    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("Choose");
    builder.setItems(items2, new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) 
        {
                        // Do some stuff depending on choice
            finish();
        }
    });
    builder.create().show();
}

问题是整个应用程序,即所有活动等都消失了,我返回到主屏幕。

如果我不调用“finish()”,那么我会在 StartupActivity 顶部留下一个“覆盖”,并且不能再做任何事情。如果我按 BACK,我将返回主屏幕。

那么,当从列表中选择某些内容或按回时,如何使 DialogActivity 消失/消失?

4

1 回答 1

2

那么它应该在后面打开你的启动屏幕。检查你的清单。并在清单中检查启动活动是否有任何 android.nohistry=true。只需将其删除。

于 2012-11-30T19:46:06.543 回答