Android应用未打开时显示通知?

时间:2014-10-07 12:56:44

标签: android notifications

当应用程序未处于活动状态时,是否仅向用户显示通知是否可用。 (打开但不活跃)。目前,我有以下代码,显示通知。但是,当用户在应用程序中时,它也会显示,这有点毫无意义。'

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;
    }

}

1 个答案:

答案 0 :(得分:1)

如果活动可见或不可见,请使用布尔值存储。 即。在onCreate和onResume中使其成立,在onPause和onStop中将其设为false。 然后你可以使用这个布尔值进行测试。