当你在应用程序关闭时点击推送(OneSignal),安卓onNewIntent就不能工作的原因是,当应用程序关闭时,系统会将推送消息作为一个通知发送给设备的通知栏,而不会直接触发应用程序的onNewIntent方法。因此,无法通过onNewIntent方法来处理推送消息。
解决这个问题的方法是,在应用程序的启动页或主活动中,通过获取推送消息的附加数据来处理推送消息。可以在活动的onCreate方法中获取推送消息的附加数据,并根据需要进行相应的处理。
以下是一个示例代码,展示如何在应用程序的启动页或主活动中处理推送消息:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取推送消息的附加数据
Bundle extras = getIntent().getExtras();
if (extras != null) {
// 处理推送消息
String message = extras.getString("message");
if (message != null) {
// 在这里进行推送消息的处理逻辑
// 例如,显示一个对话框或跳转到相应的页面
}
}
}
}
在上述代码中,通过调用getIntent().getExtras()方法获取推送消息的附加数据,并根据需要进行相应的处理。可以根据推送消息的内容进行不同的操作,例如显示一个对话框或跳转到相应的页面。
对于推送服务,腾讯云提供了腾讯移动推送(TPNS)服务,它是一种高效、稳定、可靠的移动设备消息推送服务,可帮助开发者实现消息推送功能。您可以通过腾讯云官网了解更多关于腾讯移动推送的信息:腾讯移动推送
请注意,以上答案仅供参考,具体的解决方案可能因应用程序的实际情况而有所不同。
领取专属 10元无门槛券
手把手带您无忧上云