我有一个以 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 消失/消失?