2012-11-18 64 views
0

我打电话一个活动,点击状态栏的通知,它有一个完整的按钮。点击btn。我有folllowing码 -活动没有正确关闭

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

    } 

whhen BTN新活动(TaskManagerActivity)被打开properly.But如果我重新打开我的应用程序仍试图打开这个活动,而不是我的默认登陆活动我点击完成。对此有任何帮助。

编辑 -

我试过重新定位我的完成()语句。仍然没有工作。

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

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

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

感谢, 雷

回答

2

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

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

请勿修改此行为。这是默认的系统行为,用户期望它以这种方式工作。您的应用精细:-)

+0

我已经添加了一些details.Can你请看看,让我知道如果你明白这个问题/需要更多的投入。 – RayKaushik

0

- 所有这些您所遇到的行为首先是Android正在以功能所作的方式,而且当用户收到电话,而这个应用程序是开放的,在完成应用程序后,他一定会想要回到他离开应用程序的状态。

不过,如果你想这样的说法,这里是.....

-确保您的应用程序运行它,只有单个实例使用android:launchMode="singleTask"android:launchMode="singleInstance"

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

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

我已添加一些细节。如果你了解这个问题/需要更多的意见,你可以请看看并告诉我。 – RayKaushik