我有一个我无法解释的问题.我有一个包含按钮的主要活动.单击此按钮时,它将启动一个新活动,从Internet下载xml文件.下载时会显示一条通知,指示下载进度.
这在我的AVD(API级别17)中完美运行.但是,当我尝试在我的设备中做同样的事情(GT-I1900与API级别10,Android版本2.3.3)它崩溃.
我认为notificationBuilder我使用的问题存在.
Context context = getApplicationContext();
notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationBuilder = new NotificationCompat.Builder(this);
notificationBuilder.setContentTitle("Download Progress").setContentText("Downloading").setSmallIcon(android.R.drawable.stat_sys_download);
Run Code Online (Sandbox Code Playgroud)
...
notificationManager.notify(0, notificationBuilder.build());
Run Code Online (Sandbox Code Playgroud)
为了下载,我使用了一个DownloadFilesTask(扩展AsyncTask)类,我测试过它并且工作正常.
这是异常日志:
at android.app.NotificationManager.notify(NotificationManager.java:91)
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:如果我的设备的API级别存在问题,任何人都可以解释如何使用通知构建器来处理较低的API.
这是完整的日志:
02-01 23:06:28.862: E/AndroidRuntime(16860): FATAL EXCEPTION: AsyncTask #1
02-01 23:06:28.862: E/AndroidRuntime(16860): java.lang.RuntimeException: An error occured while executing doInBackground()
02-01 23:06:28.862: E/AndroidRuntime(16860): at android.os.AsyncTask$3.done(AsyncTask.java:200)
02-01 23:06:28.862: E/AndroidRuntime(16860): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:274)
02-01 23:06:28.862: E/AndroidRuntime(16860): at java.util.concurrent.FutureTask.setException(FutureTask.java:125)
02-01 23:06:28.862: E/AndroidRuntime(16860): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308)
02-01 23:06:28.862: E/AndroidRuntime(16860): at java.util.concurrent.FutureTask.run(FutureTask.java:138)
02-01 23:06:28.862: E/AndroidRuntime(16860): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
02-01 23:06:28.862: E/AndroidRuntime(16860): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581) …Run Code Online (Sandbox Code Playgroud) android ×1