2012-05-07 134 views
0

在我的android客户端程序中,当用户有更新时收到通知。当用户点击通知时,他会被带到显示通知的新活动。现在,问题在于,如果收到另一个通知,用户正在查看更新,并且他点击该通知,则不会创建新的活动。
显示上一个活动。该活动不会刷新。 < 我怀疑这是因为当前的活动没有完成。我应该如何克服这一点?在用户点击通知后完成当前活动

回答

0

为什么不试试在你的代码中的WindowsFocusChanged(boolean hasFocus)。您的情况发生的是活动窗口已处于焦点状态因此,当您单击通知栏并移至相同的活动窗口时,将不会发生任何事情。
onWindowFocusChanged(boolean hasFocus)将在您每次进入该活动时执行。所以把你的整个代码放到这里。即使第一次调用活动,它也会被执行。因此,从公共无效的onCreate(捆绑savedInstanceState)我们的代码复制到

public void onWindowFocusChanged (boolean hasFocus) 
    { 
     super.onWindowFocusChanged(hasFocus); 
     setContentView(R.layout.layout_name); 

      //Your code to be executed here 
    } 

而且是啊,你需要拥有的OnCreate()函数也是如此声明,作为

@Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
    super.onCreate(savedInstanceState); 
    } 


试试这个。 我希望它适合你

+0

它就像一个魅力! – Ashwin

0

把它放在清单中的活动代码中(可以使用参数来更好地适应您的应用程序)。

机器人:launchMode = “singleTop”

+0

:这是做什么。 – Ashwin

+0

仅使您的活动有一个实例,并且如果您已有该活动的实例 - 则会恢复 – Royi

+0

:这正是我不想要的。我希望如果一个实例已经存在,它应该完成并开始一个新的活动。 – Ashwin

0

尝试在你的活动代码,添加此属性的清单:

android:launchMode=["multiple" | "singleTop" | 
        "singleTask" | "singleInstance"] 

与价值singleTop,它不会产生一个其他活动但如果存在,则调用潜在活动的onNewIntent方法。

Activity Element Documentation

0

而是完成当前活动的,你为什么要使用的onResume()方法来更新与新通知的数据的UI。编写方法来更新ui组件并从onResume()调用它。

+0

当我点击通知或在此之前,我的当前活动会暂停吗? – Ashwin

+0

当您点击通知时,当前活动正在暂停。并开始活动另一个实例。所以再次调用onResume()。请问我是否在通知中使用任何标志开始新的活动?最好使用intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);国旗在开始活动之前。 –