2013-08-23 63 views
1

我嘗試創建一個進度通知,如this example
這裏是我的代碼:舊Android版本的進度通知

NotificationManager mNotifyManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
    Builder mBuilder = new NotificationCompat.Builder(MyActivity.this); 
    mBuilder.setContentTitle(getString(R.string.download_title)) 
    .setContentText(getString(R.string.downloading)) 
    .setSmallIcon(R.drawable.ic_notify); 

    Intent resultIntent = new Intent(this, MyActivity.class); 
    TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); 
    // Adds the back stack for the Intent (but not the Intent itself) 
    stackBuilder.addParentStack(MyActivity.class); 
    // Adds the Intent that starts the Activity to the top of the stack 
    stackBuilder.addNextIntent(resultIntent); 
    PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); 
    mBuilder.setContentIntent(resultPendingIntent); 

通知工作得很好,但是當我要更新進度,有沒有發生,那隻能說明通知文本。

public void onRequestProgressUpdate(RequestProgress progress) {    
    mBuilder.setProgress(size, (int)(progress.getProgress()/size), false); 
    mNotifyManager.notify(Constants.NOTIFICATION_ID, mBuilder.build()); 
} 

我的應用程序使用Android的支持庫android-support-v4.jar並設定分鐘SDK版本是API 7.我想顯示進度的通知從API級別7
所有Android版本是它僅適用於新的版本?我是否必須爲通知創建自定義視圖?

+2

@ Yume117他使用NotificationCompat ......但是,當它在文檔'的陳述的在不提供擴展的通知平臺的版本,這依賴於擴大的通知方法沒有effect' ..所以R4j,是的,你必須使用自定義視圖。 – Selvin

+0

我的壞..:/無論如何好回答Selvin –

+0

@Selvin好吧,我明白了。你可以用自定義通知的示例或教程鏈接回答我的問題,然後我可以接受它嗎? – R4j

回答

0

您必須使用「NotificationCompat」而不是「Notification」類。嘗試是這樣的:

NotificationCompat.Builder builder = new NotificationCompat.Builder(this); 

builder.setContentIntent(pendInt) 
    .setSmallIcon(R.drawable.ic_someicon) 
    .setTicker("some title") 
    .setOngoing(true) 
    .setContentTitle("some content description title") 
    .setContentText("some content description description"); 
Notification not = builder.build(); 

startForeground(NOTIFY_ID, not);