0

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

4

4 回答 4

0

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

android:launchMode="singleTop"

于 2012-05-07T09:37:35.573 回答
0

尝试在清单上的活动标签上添加此属性:

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

使用 value singleTop,它不会创建其他活动,而是调用潜在活动的 onNewIntent 方法(如果存在)。

活动元素文档

于 2012-05-07T09:58:42.757 回答
0

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

于 2012-05-07T10:39:44.747 回答
0

为什么不在代码中尝试 onWindowFocusChanged (boolean hasFocus)。在您的情况下发生的是活动窗口已经处于聚焦状态所以当您单击通知栏并移动到同一个活动窗口时不会发生任何事情。
每次您进入该活动时,都会执行 onWindowFocusChanged (boolean hasFocus)。所以把你的整个代码放进去。即使第一次调用活动,它也会被执行。因此,将您的代码从 public void onCreate(Bundle 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);
   } 


试试这个。我希望这个对你有用

于 2012-05-08T05:17:51.697 回答