当应用程序未处于活动状态时,是否仅向用户显示通知是否可用。 (打开但不活跃)。目前,我有以下代码,显示通知。但是,当用户在应用程序中时,它也会显示,这有点毫无意义。'
public void notifyNewOrders() {
sp.play(soundId2, 1, 1, 0, 0, 1);
int notificationId = 001;
Intent viewIntent = new Intent(this, ListActivity.class);
viewIntent.putExtra("01", "12");
PendingIntent viewPendingIntent = PendingIntent.getActivity(this, 0,
viewIntent, 0);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(
this)
.setSmallIcon(R.drawable.coffee_tea_icon)
.setContentTitle("New Orders available!")
.setContentText(
"New orders are available. Want to make some easy money?")
.setContentIntent(viewPendingIntent);
NotificationManagerCompat notificationManager = NotificationManagerCompat
.from(this);
notificationManager.notify(notificationId, notificationBuilder.build());
}
我可以查看是否正在查看活动。如果没有,显示通知?如何才能做到这一点。谢谢。
AS建议。这是对的:
@Override
public void onResume() {
super.onResume();
user_viewing = true;
}
@Override
public void onPause() {
super.onPause();
user_viewing = false;
}
@Override
public void onStop() {
super.onStop();
user_viewing = false;
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
user_viewing = true;
} else {
user_viewing = false;
}
}
答案 0 :(得分:1)
如果活动可见或不可见,请使用布尔值存储。 即。在onCreate和onResume中使其成立,在onPause和onStop中将其设为false。 然后你可以使用这个布尔值进行测试。