0

我正在使用AsyncTask. 我希望进度对话框显示为通知栏(就像您从 AndroidMarket 下载应用程序时一样)。我正在执行以下操作:

编辑

  @Override
protected void onProgressUpdate(Integer... progress) {
super.onProgressUpdate(progress);
// show a notification bar.
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = new Notification(android.R.drawable.btn_star, "test",System.currentTimeMillis());
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notification.flags |= Notification.FLAG_NO_CLEAR;
Intent notificationIntent = new Intent(AsynctaskActivity.this, AsynctaskActivity.class);
notificationIntent.addFlags(Notification.FLAG_ONGOING_EVENT);
PendingIntent contentIntent = PendingIntent.getActivity(AsynctaskActivity.this, 0, notificationIntent, 0);
notification.setLatestEventInfo(AsynctaskActivity.this, "test","test", contentIntent);
notification.number += 1;
notification.contentView.setProgressBar(progress[0], 100, 42, false);
notificationManager.notify(1, notification);}

但我收到错误:

07-13 10:37:16.039: E/AndroidRuntime(27190): FATAL EXCEPTION: main
07-13 10:37:16.039: E/AndroidRuntime(27190): android.app.RemoteServiceException: Bad notification posted from package s.s: Couldn't expand RemoteViews for: StatusBarNotification(package=s.s id=1 tag=null notification=Notification(vibrate=null,sound=null,defaults=0x0,flags=0x30))
07-13 10:37:16.039: E/AndroidRuntime(27190):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1056)
07-13 10:37:16.039: E/AndroidRuntime(27190):    at android.os.Handler.dispatchMessage(Handler.java:99)
07-13 10:37:16.039: E/AndroidRuntime(27190):    at android.os.Looper.loop(Looper.java:130)
07-13 10:37:16.039: E/AndroidRuntime(27190):    at android.app.ActivityThread.main(ActivityThread.java:3701)
07-13 10:37:16.039: E/AndroidRuntime(27190):    at java.lang.reflect.Method.invokeNative(Native Method)
07-13 10:37:16.039: E/AndroidRuntime(27190):    at java.lang.reflect.Method.invoke(Method.java:507)
07-13 10:37:16.039: E/AndroidRuntime(27190):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
07-13 10:37:16.039: E/AndroidRuntime(27190):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624)
07-13 10:37:16.039: E/AndroidRuntime(27190):    at dalvik.system.NativeStart.main(Native Method)

我做错了什么?

4

2 回答 2

0

你的错误之一是在下面

Notification notification = new Notification(android.R.drawable.btn_star, "test",System.currentTimeMillis());

将其更改为

Notification notification = new Notification(R.drawable.btn_star, "test",System.currentTimeMillis());  
于 2013-06-08T07:14:35.857 回答
0

你的方法是错误的。

在这一行

PendingIntent act = PendingIntent.getActivity(MY_ACTIVITY, 0, new Intent(), 0);

你正在路过new Intent();

您应该执行以下操作,创建一个 Intent,并设置要在通知中显示的内容:

Intent notificationIntent = new Intent(this, PlayTrack.class);
notificationIntent.addFlags(Notification.FLAG_ONGOING_EVENT);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
     notificationIntent, 0);
于 2012-07-13T07:09:19.787 回答