2

任何人都可以帮助我如何发出通知,通知用户他后台应用程序。

4

3 回答 3

1

您需要覆盖onPause()活动的方法。并且必须触发notification.

对于通知,请参阅。您还可以从此处查看 Activity 生命周期。

于 2012-11-29T11:48:32.617 回答
0

onPause()and方法在onResume()被带到后台并再次进入前台时被调用,但是当应用程序第一次启动并且在它被杀死之前也会被调用。你可以在这里阅读更多:

http://developer.android.com/reference/android/app/Activity.html

这是通知示例作为您的问题。

private static final int MY_NOTIFICATION_ID = 1;
    private NotificationManager notificationManager;
    private Notification myNotification;

    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();

        notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        myNotification = new Notification(R.drawable.ic_action_search,
                "Notification!", System.currentTimeMillis());
        Context context = getApplicationContext();
        String notificationTitle = "Exercise of Notification!";
        String notificationText = "http://android-er.blogspot.com/";
        Intent myIntent = new Intent(Intent.ACTION_VIEW,
                Uri.parse("www.google.com"));
        PendingIntent pendingIntent = PendingIntent.getActivity(
                MainActivity.this, 0, myIntent, Intent.FLAG_ACTIVITY_NEW_TASK);
        myNotification.defaults |= Notification.DEFAULT_SOUND;
        myNotification.flags |= Notification.FLAG_AUTO_CANCEL;
        myNotification.setLatestEventInfo(context, notificationTitle,
                notificationText, pendingIntent);
        notificationManager.notify(MY_NOTIFICATION_ID, myNotification);

    }
于 2012-11-29T12:01:39.893 回答
0

我建议在 onStop() 和 onStart() 中执行此操作,而不是在 onPause() 和 onResume() 中执行此操作。否则,每当您在活动中添加某些内容但您的活动仍然可见时(例如,因为您收到短信而弹出一个弹出窗口......),您的通知就会被调用,这会出现在您的活动前面. 在这种情况下将调用 onPause(),而不是 onStop()。

于 2012-11-29T13:05:07.047 回答