android 可以使用深层链接打开常规 class 吗?
android can the deeplink be used to open a regular class?
在android中,它可以设置深层链接在收到推送通知时启动Activity。
<activity
android:name=".ActivityForTestAction"
android:launchMode="singleTop"
>
<intent-filter >
<action android:name="demoapp.action.WRITE_TO_DATABASE" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="demoapp"
android:host="www.demoapp.com"
android:pathPrefix="/test" />
</intent-filter>
它只会用“demoapp.action.WRITE_TO_DATABASE”和正确的 URI 发送ui通知:
Intent intent = new Intent("demoapp.action.WRITE_TO_DATABASE");
intent.setData(Uri.parse("demoapp://www.demoapp.com/test"));
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
builder = new Notification.Builder(context)
.setContentIntent(pendingIntent)
... ...;
Notification notification = builder.build();
notificationManager.notify(100, notification);
如果点击通知,它将打开 ActivityForTestAction
。
但是,有些推送通知不需要任何ui(Activity),例如,只需要写入数据库。
那么有没有办法仍然执行“深层链接”但实例化 class 和 运行 那里的操作?
如果您不想打开任何 activity,您可以简单地使用广播接收器。像这样更改这部分:
val intent = Intent(context,NotificationReceiver::class.java)
val pendingIntent = PendingIntent.getBroadcast(
cotext, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT
)
然后在你的 BroadcastReceiver onReceive
方法上你可以做任何你想做的事而无需打开任何 activity.
在android中,它可以设置深层链接在收到推送通知时启动Activity。
<activity
android:name=".ActivityForTestAction"
android:launchMode="singleTop"
>
<intent-filter >
<action android:name="demoapp.action.WRITE_TO_DATABASE" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="demoapp"
android:host="www.demoapp.com"
android:pathPrefix="/test" />
</intent-filter>
它只会用“demoapp.action.WRITE_TO_DATABASE”和正确的 URI 发送ui通知:
Intent intent = new Intent("demoapp.action.WRITE_TO_DATABASE");
intent.setData(Uri.parse("demoapp://www.demoapp.com/test"));
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
builder = new Notification.Builder(context)
.setContentIntent(pendingIntent)
... ...;
Notification notification = builder.build();
notificationManager.notify(100, notification);
如果点击通知,它将打开 ActivityForTestAction
。
但是,有些推送通知不需要任何ui(Activity),例如,只需要写入数据库。
那么有没有办法仍然执行“深层链接”但实例化 class 和 运行 那里的操作?
如果您不想打开任何 activity,您可以简单地使用广播接收器。像这样更改这部分:
val intent = Intent(context,NotificationReceiver::class.java)
val pendingIntent = PendingIntent.getBroadcast(
cotext, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT
)
然后在你的 BroadcastReceiver onReceive
方法上你可以做任何你想做的事而无需打开任何 activity.