0

当我的 MainActivity 为 onPause() 时,我必须显示通知,所以我在 MainActivity 上编写下面的代码,所以 onPAuse() 我的意思是 Activity 由于外部操作(未接来电、屏幕锁定)而中断,但我有一个问题,即使当我移动到另一个活动时,也会显示通知,有人可以帮助我吗?

private void createNotify(){
    NotificationManager notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);        
    Notification notification = new Notification(R.drawable.ic_launcher, "Radio Jawhara en cours...", System.currentTimeMillis());  
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, FragmentsSliderActivity.class), 0);
    String titreNotification = "Radio Jawhara en cours...";
    String texteNotification = "Retour à la radio...";   
    notification.setLatestEventInfo(this, titreNotification, texteNotification, pendingIntent);
    notification.vibrate = new long[] {0,200,100,200,100,200};
    notificationManager.notify(ID_NOTIFICATION, notification);
}

private void cancelNotify(){
    NotificationManager notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
    notificationManager.cancel(ID_NOTIFICATION);
}

@Override
protected void onResume() {
    super.onResume();
    cancelNotify();
}
@Override
protected void onPause() {
    super.onPause();
    createNotify();
}
4

2 回答 2

0

FLAG在您的代码中创建一个并修改onPause()如下:

@Override
protected void onPause() {
    super.onPause();
    if(FLAG) {
        createNotify();
    }
}

将此标志的默认值设置为false,并将其设置为true 仅当您想离开此标志时Activity。(例如,当您开始另一个activitystartActivity());

于 2012-11-02T12:32:30.440 回答
0

我认为这里的问题是你在几个活动中管理它,你应该在更高的层次上管理它。

如果我要解决这个问题,我会创建一个单例类来管理通知。我所有的活动都会(在他们的 onPause() 方法中)告诉单身人士他们已经暂停,我所有的活动也会告诉单身人士他们已经恢复(在他们的 onResume() 方法中)。

我的单例暂停方法不会立即创建通知;相反,它会为我的下一个活动设置一个合理的时间(可能是 1 秒)。我的单身人士的恢复方法会简单地取消该计时器。如果计时器到期(这将在出于某种外部目的而暂停一秒后发生),它将创建通知。

为了使这更容易,我可能会使用具有静态详细信息的类而不是使用单例来扩展 Activity,并且我的其他活动将从该类扩展而不是扩展 Activity。这将使创建和维护适当协调的活动变得更加容易。

于 2012-11-02T12:53:30.900 回答