android - Activity 未完成

标签 android android-activity

我有一个包含 DatePickerDialogDialogFragment。每当我设置日期时,一项新 Activity 就会开始。当我按回去时,它会返回到相同的 Activity 。为什么 Activity 没有完成?

在 Activity 中,我使用以下方法启动对话框:

@Override
public boolean onOptionsItemSelected(MenuItem item){
    switch(item.getItemId()){
        case R.id.calendar:
            new ViewCalendar().show(getFragmentManager(), "Calendar");
            return true;
    }
    return false;
}

我在 fragment 中有以下内容:

@Override
public void onDateSet(DatePicker view, int y, int m, int d) {
    c.set(y, m, d);
    Intent intent = new Intent(getActivity(), Calendar.class);
    getActivity().finish();
    startActivity(intent);
}

编辑:

我将对问题进行更多描述。

我有一个 Activity A,它带有一个启动 DatePickerDialog 的按钮。我选择一个日期,应该会发生以下情况:

  • Activity A 完成。
  • 已创建 Activity A 的新实例。

现在发生的事情是:

  • Activity A 停留在后台。
  • 已创建 Activity A 的新实例。

Activity 堆栈现在是 A - A,这就是为什么如果我按回它会返回到旧实例。

最佳答案

实际上你的Back stack并不清楚,这就是你之前的 Activity 在打开时打开的原因 向后按。所以正确地清除你的后退堆栈,它会完美地工作。

应用此代码:

@Override
public void onDateSet(DatePicker view, int y, int m, int d) {
    c.set(y, m, d);
    Intent intent = new Intent(getActivity(), Calendar.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(intent);
    getActivity().finish();
}

关于android - Activity 未完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21426082/

相关文章:

android - 捕获 "Unfortunately ' 应用程序'已停止工作“错误

java - 单击监听器不会切换 Activity

Android - 构建卡片列表

android mediaplayer 在 ICS 上永远循环

java - 在 viewpager fragment 中添加按钮并在另一个 Activity 中添加 Intent ?

android - Git 版本控制和库项目

java - 以下代码没有设置小部件在另一个 Activity 中可见的功能

java - 返回 Android 中的上一个 Activity

android - 删除 Activity 中的顶部蓝色

java - 如何在 Context.MODE_PRIVATE 中创建嵌套文件夹和文件?