【问题标题】:Activity not closing properly活动未正确关闭
【发布时间】:2012-11-18 14:37:32
【问题描述】:

我在单击具有“完成”按钮的状态栏通知时调用一项活动。点击 btn。我有以下代码 -

public void completeTask(){
        taskDBAdapter.deleteReminder(rowId);
        taskDBAdapter.close();
        Intent intent = new Intent(this, TaskManagerActivity.class);
        startActivity(intent);
        finish();

    }

当我单击完成 btn 时,新活动 (TaskManagerActivity) 会正确打开。但如果我重新打开我的应用程序,它仍会尝试打开此活动,而不是我的默认登陆活动。有什么帮助吗??

编辑 -

我尝试重新定位我的 finish() 语句。还是不行。

编辑 1.1 - 好的,我将在这里提供一些细节。假设我的应用有两个活动

  1. 主要活动
  2. 通知活动

我的应用程序创建了一些通知以显示在状态栏上。所以只要我点击状态栏通知 actvty 就会打开。现在有一个名为 Complete on click 的按钮,给出的代码将触发并且主要活动(在代码 TaskManagerActivity.class 中)将打开。但是当我在我的应用程序中按下返回按钮并再次重新打开它后,它会在它应该触发主要活动时打开通知活动(因为它正在启动活动)。

谢谢, 雷

【问题讨论】:

    标签: android android-intent onpause activity-finish


    【解决方案1】:

    这是 android 运行的默认方式。如果您按下主页按钮然后再次打开您的应用程序,它将恢复应用程序以前的状态(除非它由于内存限制而终止了应用程序进程和活动)。所以你实际上并没有重新启动你的应用程序,而只是恢复它。

    如果您想退出应用程序,请按返回按钮。现在,当您重新打开应用程序时,将启动原始活动。

    不要修改此行为。这是默认的系统行为,用户希望它以这种方式工作。你的应用很好:-)

    【讨论】:

    • 我添加了一些细节。如果您了解问题/需要更多输入,请您看一下并告诉我。
    【解决方案2】:

    -首先你遇到的行为是Android的运行方式,而且当用户在这个应用程序打开时接到电话时,完成应用程序后他肯定会想要回到他离开应用程序的状态。

    如果你想要那样的话,就在这里.....

    - 使用android:launchMode="singleTask" android:launchMode="singleInstance"

    确保您的应用程序只有一个实例正在运行

    -然后finish()你的活动onPause()

    @Override
    void onPause()
        {
        super.onPause();
        finish();
        }
    

    【讨论】:

    • 我添加了一些细节。如果您了解问题/需要更多输入,请您看一下,让我知道。
    猜你喜欢
    • 2016-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多