0

我在单击具有“完成”按钮的状态栏通知时调用一项活动。点击 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 中)将打开。但是当我在我的应用程序中按下后退按钮并再次重新打开它后,它会在它应该触发主要活动时打开通知活动(因为它正在启动活动)。

谢谢,雷

4

2 回答 2

2

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

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

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

于 2012-11-18T14:43:52.387 回答
0

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

不过,如果你想要那样的话,这里就是......

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

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

@Override
void onPause()
    {
    super.onPause();
    finish();
    }
于 2012-11-18T14:57:46.920 回答