我知道有很多关于它的话题。我知道有Android开发者网站,即使我使用这个网站的代码,我有一个错误。通知中的ProgressBar [ANDROID]
我只是想在通知中放置一个ProgressBar。 所以我把这种方法,我从Android开发者网站了:
public static void generateNotification(Context context){
final NotificationManager mNotifyManager =(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
final Notification.Builder mBuilder = new Notification.Builder(context);
mBuilder.setContentTitle("Picture Download")
.setContentText("Download in progress");
// Start a lengthy operation in a background thread
new Thread(
new Runnable() {
@Override
public void run() {
int incr;
for (incr = 0; incr <= 100; incr+=5) {
mBuilder.setProgress(100, incr, false);
mNotifyManager.notify(0, mBuilder.build());
try {
Thread.sleep(5*1000);
} catch (InterruptedException e) {
Log.d("Generate Notif", "sleep failure");
}
}
// When the loop is finished, updates the notification
mBuilder.setContentText("Download complete")
.setProgress(0,0,false);
mNotifyManager.notify(100, mBuilder.build());
}
}
// Starts the thread by calling the run() method in its Runnable
).start();
}
,我有此错误:
10-01 15:37:42.226: E/AndroidRuntime(9840): FATAL EXCEPTION: Thread-1250
10-01 15:37:42.226: E/AndroidRuntime(9840): java.lang.NoSuchMethodError: android.app.Notification$Builder.build
10-01 15:37:42.226: E/AndroidRuntime(9840): at com.Tools.UtilClass$10.run(UtilClass.java:813)
10-01 15:37:42.226: E/AndroidRuntime(9840): at java.lang.Thread.run(Thread.java:856)
这:
E/WindowManager(9840): Activity com.main.LoginConnection has leaked window [email protected] that was originally added here
E/WindowManager(9840): android.view.WindowLeaked: Activity com.main.LoginConnection has leaked window [email protected] that was originally added here
E/WindowManager(9840): at android.view.ViewRootImpl.<init>(ViewRootImpl.java:344)
E/WindowManager(9840): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:267)
E/WindowManager(9840): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:215)
E/WindowManager(9840): at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:140)
E/WindowManager(9840): at android.view.Window$LocalWindowManager.addView(Window.java:537)
E/WindowManager(9840): at android.app.Dialog.show(Dialog.java:278)
E/WindowManager(9840): at com.main.LoginConnection.getRegisterId(LoginConnection.java:281)
E/WindowManager(9840): at com.main.LoginConnection.onCreate(LoginConnection.java:101)
E/WindowManager(9840): at android.app.Activity.performCreate(Activity.java:4465)
E/WindowManager(9840): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
E/WindowManager(9840): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
E/WindowManager(9840): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
E/WindowManager(9840): at android.app.ActivityThread.access$600(ActivityThread.java:123)
E/WindowManager(9840): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
E/WindowManager(9840): at android.os.Handler.dispatchMessage(Handler.java:99)
E/WindowManager(9840): at android.os.Looper.loop(Looper.java:137)
E/WindowManager(9840): at android.app.ActivityThread.main(ActivityThread.java:4424)
E/WindowManager(9840): at java.lang.reflect.Method.invokeNative(Native Method)
E/WindowManager(9840): at java.lang.reflect.Method.invoke(Method.java:511)
E/WindowManager(9840): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
E/WindowManager(9840): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
E/WindowManager(9840): at dalvik.system.NativeStart.main(Native Method)
E/WindowManager(9840): Activity com.main.LoginConnection has leaked window [email protected] that was originally added here
E/WindowManager(9840): android.view.WindowLeaked: Activity com.main.LoginConnection has leaked window [email protected] that was originally added here
E/WindowManager(9840): at android.view.ViewRootImpl.<init>(ViewRootImpl.java:344)
E/WindowManager(9840): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:267)
E/WindowManager(9840): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:215)
E/WindowManager(9840): at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:140)
E/WindowManager(9840): at android.view.Window$LocalWindowManager.addView(Window.java:537)
E/WindowManager(9840): at android.app.Dialog.show(Dialog.java:278)
E/WindowManager(9840): at com.Tools.UtilClass.openSettingApp(UtilClass.java:557)
E/WindowManager(9840): at com.Tools.UtilClass$4.onClick(UtilClass.java:383)
E/WindowManager(9840): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166)
E/WindowManager(9840): at android.os.Handler.dispatchMessage(Handler.java:99)
E/WindowManager(9840): at android.os.Looper.loop(Looper.java:137)
E/WindowManager(9840): at android.app.ActivityThread.main(ActivityThread.java:4424)
E/WindowManager(9840): at java.lang.reflect.Method.invokeNative(Native Method)
E/WindowManager(9840): at java.lang.reflect.Method.invoke(Method.java:511)
E/WindowManager(9840): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
E/WindowManager(9840): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
E/WindowManager(9840): at dalvik.system.NativeStart.main(Native Method)
,所以我不明白为什么我有这个错误...
我宠爱NOtificationCompat.Builder,但如果我把这个代码,我有setProgress方法的错误'这个方法是未定义的......'所以我怎么做,而我把这段代码放在ANdroid开发者网站上 – 2014-10-02 08:24:40
我发现问题。这是因为我有android-support-v13和 显然我应该使用android-support-V4。 BUt此时没有任何反应。 – 2014-10-02 09:06:17
正如我所说的,您需要使用NotificationCompat.Builder,并且您需要提到的4件事情才能发布通知。如果你没有全部4个,它不会发布。 – Travis 2014-10-02 13:38:14