【问题标题】:Android: Don't open app after performing notification on-click actionAndroid:执行通知点击操作后不要打开应用程序
【发布时间】:2014-09-14 06:27:08
【问题描述】:

我的应用程序的主要部分是显示通知的服务。该应用程序的 GUI 仅用于能够更改某些设置。当我点击那个通知时,一些数据应该在后台发送而不打开应用程序。为此,我创建了一个不可见的活动。

当我打开应用程序(配置部分)并使用返回按钮退出时,一切正常;单击通知时,无需打开应用即可发送数据。

当我使用主页按钮退出应用程序时,每次单击通知时应用程序都会再次打开。

这是我的通知和调用数据活动的意图:

PendingIntent toggleLightsIntent = 
    PendingIntent.getActivity(
    this,
    0,
    new Intent(this, HyperionToggleSwitchActivity.class),
    PendingIntent.FLAG_NO_CREATE);

Notification notification = new Notification.Builder(this)
    .setSmallIcon(R.drawable.ic_launcher)
    .setContentTitle("HyperionSwitch")
    .setContentText("Switch lights")
    .setContentIntent(toggleLightsIntent)
    .build();

这是我发送数据的部分:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    sendJson(blue);
    finish();
}

我需要进行哪些更改才能使应用在单击通知时无法打开? 这是我的第一个应用程序,我花了很长时间才得到我目前所拥有的......

【问题讨论】:

  • 您是否尝试过简单地设置内容意图(或提供null)?根据文档,创建通知时只有一个小图标、内容标题和内容文本是必需的。从概念上讲,不设置任何操作也比摆弄隐形活动更有意义,imo。
  • 嗯?您如何建议在不设置 Intent 的情况下执行点击操作?
  • 我真诚地道歉...我一定是暂时性的大脑崩溃了。忽略我之前的评论。我应该说的是使用PendingIntent.getService()PendingIntent 直接发送到您的服务 - 您不需要任何隐形活动或任何东西。
  • 谢谢,这正是我需要的。将活动更改为服务,现在它按预期工作。
  • 很遗憾,我现在无法将问题标记为已回答,因为您刚刚发表了评论...

标签: java android notifications


【解决方案1】:

根据之前的评论:

您可以将隐藏的活动更改为 Service(通常没有任何 ui),或利用管理通知的服务,并使用 PendingIntent.getService()PendingIntent 直接发送到该服务。

【讨论】:

    【解决方案2】:

    试试这个代码^

     Intent intent = new Intent(this, MainActivity.class);
        intent.putExtra(MainActivity.FILE_NAME, "somefile");
        PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 0);
    

    【讨论】:

    • 那个文件是从哪里来的?我没有发送任何文件。它只是 TCP 上的原始 Json。
    猜你喜欢
    • 2012-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-29
    • 2020-09-11
    • 1970-01-01
    • 2022-12-10
    • 1970-01-01
    相关资源
    最近更新 更多