我有一个以StartupActivity开头的应用。
StartupActivity启动服务,如下所示:
startService(new Intent(StartupActivity.this, SamcomService.class));
在某些时候,服务决定广播一个StartupActivity对其作出反应的Intent。活动在收到INtent时会这样做:
Intent intent2 = new Intent(StartupActivity.this, DialogActivity.class);
intent2.putExtra("Centrals", list); // list is defined elsewhere
startActivity(intent2);
正如您所看到的,启动了一个新的Activity,并且该Activity恰好将Theme.Dialog作为主题。对话框显示一个列表,用户应在其中选择一些内容。此时,应将它们返回到第一个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消失/消失呢?
答案 0 :(得分:2)
它应该打开你的启动屏幕。检查你的清单。如果有任何android.nohistry = true,则在清单检查启动活动中。只需删除它。