Domanda

Vorrei mettere una barra di avanzamento nella barra di notifica. L'idea sta mostrando la barra di avanzamento, mentre il programma carica un file su un server. Tutto il resto è ok, ma non riesco a capire come aggiornare la barra di avanzamento all'interno della notifica. Qualcuno sa qualsiasi modello con cui giocare? Voglio dire, dove dovrei aggiornare la barra di avanzamento, in un servizio o attività e così.

È stato utile?

Soluzione

Non so che cosa i vostri sguardi codice come, quindi non so che cosa è necessario modificare, butI ha fatto qualche ricerca attraverso la documentazione. Ho trovato alcune cose su Notifiche , ProgressBars e RemoteViews .

In particolare, in RemoveView, è possibile aggiornare la barra di avanzamento. Quindi, combinando alcuni dei codice di esempio in ogni link, ho qualcosa di simile:

public class MyActivity extends Activity {
    private static final int PROGRESS = 0x1;
    private static final int MAX_PROGRESS = 100;

    private int mProgressStatus = 0;

    private Handler mHandler = new Handler();

    protected void onCreate(Bundle icicle) {
        super.onCreate(icicle);

        //define Notification
        //...

        RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.custom_notification_layout);
        contentView.setProgressBar(R.id.progress_bar, MAX_PROGRESS, mProgressStatus, false);
        notification.contentView = contentView;

        // Start file upload in a background thread
        new Thread(new Runnable() {
            public void run() {
                while (mProgressStatus < MAX_PROGRESS) {
                    mProgressStatus = doWork();

                    // Update the progress bar
                    mHandler.post(new Runnable() {
                        public void run() {
                            contentView.setProgressBar(R.id.progress_bar, MAX_PROGRESS, mProgressStatus, false);
                        }
                    });
                }
            }
        }).start();
    }
}

Altri suggerimenti

È possibile utilizzare le visualizzazioni personalizzate in Notifica:
https://developer.android.com/guide/topics/ ui / notificanti / notifications.html # CustomExpandedView

Per rimuovere un ProgressBar dal RemoteView utilizzare il seguente codice: -

 remoteViews.setViewVisibility(R.id.progressBar, View.INVISIBLE);

È anche possibile utilizzare View.GONE ma che farà Android per riempire lo spazio vuoto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top