0

を使用してサーバーから Android のファイルをダウンロードしています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

あなたの間違いの1つは線の下にあります

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

Your approach is wrong.

In this line

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

you are passing new Intent();

you should do as below, create an Intent, and set what you want to show in the notification :

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 に答える