Frage

Ich möchte einen Fortschrittsbalken in der Benachrichtigungsleiste setzen. Die Idee ist, zeigt der Fortschrittsbalken, während das Programm lädt eine Datei auf einem Server. Alles andere ist in Ordnung, aber ich kann nicht herausfinden, wie die Fortschrittsanzeige in der Mitteilung zu aktualisieren. Hat jemand weiß, jedes Muster mit zu spielen? Ich meine, wo ich soll die Fortschrittsbalken aktualisieren, in einem Dienst oder Aktivität und so weiter.

War es hilfreich?

Lösung

Ich weiß nicht, was Ihr Code wie folgt aussieht, so dass ich weiß nicht, was Sie ändern müssen, tat buti einige der Suche durch die Dokumentation. Ich fand ein paar Sachen auf Benachrichtigungen , Progress und RemoteViews .

Insbesondere in RemoveView, können Sie die Fortschrittsbalken aktualisieren. Also in jedem Link ein Teil des Beispiel-Code kombiniert, bekomme ich so etwas wie folgt aus:

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();
    }
}

Andere Tipps

Sie können benutzerdefinierte Ansichten in Benachrichtigung verwenden:
https://developer.android.com/guide/topics/ ui / Anmeldern / notifications.html # CustomExpandedView

Um eine ProgressBar von Remote entfernen verwenden Sie folgenden Code: -

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

Sie können auch View.GONE verwenden, aber das wird machen android leeren Raum zu füllen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top