无论Java Android是什么,通知都会打开一个新窗口

时间:2011-10-01 21:46:27

标签: java android android-activity notifications android-intent

我想发布通知。当我点击它时,它会打开应用程序的新窗口。 这是我的代码:

public class Noficitation extends Activity {

NotificationManager nm;
static final int uniqueID = 1394885;
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    Intent intent= new Intent (Intent.ACTION_MAIN);
    intent.setClass(getApplicationContext(), SchoolBlichActivity.class);
    PendingIntent pi=PendingIntent.getActivity(this, 0, intent, 0);
    String body = " body";
    String title = "title!";
    Notification n =new Notification(R.drawable.table, body, System.currentTimeMillis());
    n.setLatestEventInfo(this, title, body, pi);
    n.defaults = Notification.DEFAULT_ALL;
    n.flags = Notification.FLAG_AUTO_CANCEL;
    nm.notify(uniqueID,n);
    finish();
}

顺便说一句,如果我在finish()之前添加nm.cancel(uniqueID),它会创建通知并立即将其删除...

感谢您的帮助:D

2 个答案:

答案 0 :(得分:2)

您可能只想在通知栏中添加通知,当用户点击它时,它会启动实际的活动。这样,用户不会在他正在做的任何事情中被打断。

像这样创建状态栏通知:

NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = new Notification(R.drawable.notification_icon, "Hello", System.currentTimeMillis());

Intent notificationIntent = new Intent(this, myclass.class);
notification.setLatestEventInfo(getApplicationContext(), "My notification", "Hello world!", notificationIntent, PendingIntent.getActivity(this, 0, notificationIntent, 0));

mNotificationManager.notify(1, notification);

http://developer.android.com/guide/topics/ui/notifiers/notifications.html

答案 1 :(得分:1)

您是否只是想在当前活动中打开通知窗口?因为如果你是我不认为你需要有意图启动它。您通常只使用意图在您的应用中启动新服务或活动,除非您在通知框中构建了自定义视图和活动/服务。我看到你把它设置在自己的类中,这很好,但我认为默认情况下这样做可以打开一个全新的视图。

如果你需要在一个过程中启动通知或类似点击按钮之类的东西你不需要有意图......或者至少我从来没有这样做:)你究竟想通过通知实现什么