android - 不启动新 Activity 的通知操作?

标签 android notifications push-notification heads-up-notifications

我计划制作一个包含两个操作的提示通知:一个用于批准登录请求,一个用于拒绝登录请求。通过单击这些操作中的任何一个,我希望向我的服务器发出 HTTP 请求,最重要的是不想启动新的 Activity 或根本不想将用户重定向到我的应用程序。

        Context context = getBaseContext();
    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context)
            .setSmallIcon(R.mipmap.notificationicon)
            .setContentTitle(notificationTitle)
            .setContentText("Access Request for " + appName + " : " + otp)
            .setDefaults(Notification.DEFAULT_ALL)
            .setPriority(NotificationCompat.PRIORITY_HIGH)
            .addAction(R.drawable.ic_tick, "Approve", someApproveIntent?  );

这是我的通知生成器,环顾四周后,addAction 方法似乎正在寻找新的/待处理的 Intent,这让我感到困惑,因为我在网上找不到任何 Intents 不会导致新 Activity 被触发的示例。

我将如何实现一些代码(可能是一个方法)而不是在我的每个 Action 上启动一个新的 Activity?

最佳答案

如果你不想开始一个 Activity ,你也可以包装一个 BroadcastReceiverService直接在PendingIntent .

无论您在何处构建通知...

您的通知操作将直接启动服务。

NotificationCompat.Builder builder = new NotificationCompat.Builder(context)...

Intent iAction1 = new Intent(context, MyService.class);
iAction1.setAction(MyService.ACTION1);
PendingIntent piAction1 = PendingIntent.getService(context, 0, iAction1, PendingIntent.FLAG_UPDATE_CURRENT);

builder.addAction(iconAction1, titleAction1, piAction1);

// Similar for action 2.

我的服务.java

IntentServices一个接一个地连续运行。他们在工作线程上完成工作。

public class MyService extends IntentService {
  public static final String ACTION1 = "ACTION1";
  public static final String ACTION2 = "ACTION2";

  @Override
  public void onHandleIntent(Intent intent) {
    final String action = intent.getAction();
    if (ACTION1.equals(action)) {
      // do stuff...
    } else if (ACTION2.equals(action)) {
      // do some other stuff...
    } else {
      throw new IllegalArgumentException("Unsupported action: " + action);
    }
  }
}

AndroidManifest.xml

不要忘记在 list 中注册服务。

<manifest>
  <application>
    <service
        android:name="path.to.MyService"
        android:exported="false"/>
  </application>
</manifest>

关于android - 不启动新 Activity 的通知操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36433573/

相关文章:

android - 有没有办法在我们的应用程序中使用 Android 系统生成的通知

android - 通知图标应用程序背景android

android - 如何将wit.ai与ogg文件一起使用

android - Android 上的解析通知将不起作用

android - 以编程方式使用外部应用程序编辑 pdf

android - 如何从android中的通知栏调用对话框?

php - ios - 使用 firebase 发送通知

java - 安卓手机如何直接访问adc和dac?

ios - 使用UNUserNotificationCenter支持iOS 10丰富的通知,但通知从不显示。它只是发出警报

用于调度通知的数据库(可能存储在 RAM 中 - radis、memcashedb)