Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

Einzelne App sichern

Das Thema "Einzelne App sichern" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 01.08.2011, 14:26   #1 (permalink)
Junior Mitglied

Modell: HTC Hero

Registriert seit: 02.02.2010
Beiträge: 39
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard Einzelne App sichern

Hallo,
ich versuche derzeit, eine einzelne App aus einer ListView auszuwählen und diese zu sichern.
(Ich weiss nicht genau wie ich das Ausgewählte Element der ListView nutze)
Mein Ansatz dazu sieht folgendermassen aus:

Code:
    private ProgressDialog backup_app;

        backup_app = ProgressDialog.show(MainActivity.this,
                            "Sicherung", "", true, false);
                    Thread backup_app = new Thread(new BackupApp());
                    backup_app.start();
Aufgerufen wird:
Code:
        private static final String BACKUP_LOC = Environment
            .getExternalStorageDirectory() + "/InfoBackup/";
    private static final int SET_PROGRESS = 0x00;
    private static final int FINISH_PROGRESS = 0x01;
    private ProgressDialog backup_app;

    private List<App> mApps;
    private App info;

private class BackupApp implements Runnable {
        private static final int BUFFER = 1024;

        private File mDir = new File(BACKUP_LOC);
        private byte[] mData;

        public BackupApp() {
            mData = new byte[BUFFER];

            /* create dir if needed */
            File d = new File(BACKUP_LOC);
            if (!d.exists()) {
                d.mkdir();

                // then create this directory
                mDir.mkdir();

            } else {
                if (!mDir.exists())
                    mDir.mkdir();
            }
        }

        public void run() {
            BufferedInputStream mBuffIn;
            BufferedOutputStream mBuffOut;
            Message msg;
            int read = 0;
            info = (App) mAppsList.getSelectedItem();
            String source_file = info.getInstallDir() + info.getPackageName();
            String out_file = info.getTitle() + " " + info.getVersionName()
                    + ".apk";

            try {
                mBuffIn = new BufferedInputStream(new FileInputStream(
                        source_file));
                mBuffOut = new BufferedOutputStream(new FileOutputStream(
                        BACKUP_LOC + out_file));

                while ((read = mBuffIn.read(mData, 0, BUFFER)) != -1)
                    mBuffOut.write(mData, 0, read);

                mBuffOut.flush();
                mBuffIn.close();
                mBuffOut.close();

                msg = new Message();
                msg.what = SET_PROGRESS;
                msg.obj = info.getTitle() + " wird gesichert";
                BackupAppHandler.sendMessage(msg);

            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            BackupAppHandler.sendEmptyMessage(FINISH_PROGRESS);
        }
    }

    private Handler BackupAppHandler = new Handler() {
        public void handleMessage(Message msg) {

            switch (msg.what) {
            case SET_PROGRESS:
                backup_app.setMessage((String) msg.obj);
                break;
            case FINISH_PROGRESS:
                backup_app.dismiss();
                AlertDialog.Builder finish = new AlertDialog.Builder(
                        MainActivity.this);
                finish.setTitle(R.string.finish_title);
                finish.setMessage(R.string.finish_message);
                finish.setCancelable(false);
                finish.setIcon(android.R.drawable.ic_menu_close_clear_cancel);
                finish.setPositiveButton(R.string.finish_button,
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int id) {
                                dialog.dismiss();
                            }
                        });
                AlertDialog finish_alert = finish.create();
                finish_alert.show();
                break;
            }
        }
    };
Ich habe meinen Code, mit dem ich alle Apps sichern kann als Vorlage genommen. (Hier damit ihr einen Vergleich habt)

Code:
    private ProgressDialog backup_all;

                        backup_all = ProgressDialog.show(MainActivity.this,
                    "Sicherung der Anwendungen", "", true, false);
            Thread backup_all = new Thread(new BackupAll(mApps));
            backup_all.start();
Aufgerufen wird dort:

Code:
        private static final String BACKUP_LOC = Environment
            .getExternalStorageDirectory() + "/InfoBackup/";
    private static final int SET_PROGRESS = 0x00;
    private static final int FINISH_PROGRESS = 0x01;
    private ProgressDialog backup_all;

    private List<App> mApps;
    private App info;

private class BackupAll implements Runnable {
        private static final int BUFFER = 1024;

        private File mDir = new File(BACKUP_LOC);
        private byte[] mData;

        public BackupAll(List<App> data) {
            mApps = data;
            mData = new byte[BUFFER];

            /* create dir if needed */
            File d = new File(BACKUP_LOC);
            if (!d.exists()) {
                d.mkdir();

                // then create this directory
                mDir.mkdir();

            } else {
                if (!mDir.exists())
                    mDir.mkdir();
            }
        }

        public void run() {
            BufferedInputStream mBuffIn;
            BufferedOutputStream mBuffOut;
            Message msg;
            int len = mApps.size();
            int read = 0;

            for (int i = 0; i < len; i++) {
                info = mApps.get(i);
                String source_dir = info.getInstallDir();
                String out_file = info.getTitle() + " " + info.getVersionName()
                        + ".apk";
                try {
                    mBuffIn = new BufferedInputStream(new FileInputStream(
                            source_dir));
                    mBuffOut = new BufferedOutputStream(new FileOutputStream(
                            BACKUP_LOC + out_file));

                    while ((read = mBuffIn.read(mData, 0, BUFFER)) != -1)
                        mBuffOut.write(mData, 0, read);

                    mBuffOut.flush();
                    mBuffIn.close();
                    mBuffOut.close();

                    msg = new Message();
                    msg.what = SET_PROGRESS;
                    msg.obj = i + " von " + len + " Anwendungen gesichert";
                    BackupAllHandler.sendMessage(msg);

                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

            BackupAllHandler.sendEmptyMessage(FINISH_PROGRESS);
        }
    }
AlexRock ist offline   Mit Zitat antworten
Alt 01.08.2011, 15:09   #2 (permalink)
Android Guru

Modell: T-Mobile G1, Nexus One, Samsung Galaxy Tab 10.1, Samsung Galaxy Nexus

Registriert seit: 04.05.2009
Beiträge: 1.599
Abgegebene Danke: 128
Erhielt 210 Danke für 193 Beiträge
Standard AW: Einzelne App sichern

Was genau ist deine Frage?
Wie man nach einem Item Click auf das dazugehörige Objekt kommt? Dafür kriegt man ja den index übergeben.

Oder war die Frage eine andere?
__________________
Follow/Add/Circle/Whatever me on Google+

Solitaire HD, ein Solitaire optimiert für Honeycomb.
the_alien ist offline   Mit Zitat antworten
Alt 01.08.2011, 15:20   #3 (permalink)
Junior Mitglied

Modell: HTC Hero

Registriert seit: 02.02.2010
Beiträge: 39
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard AW: Einzelne App sichern

Ich klicke auf ein Element der ListView (Ist eine App im /data/) und diese eine möchte ich dann an meinen "BackupApp()" übergeben...
Ich weiss leider nicht, wie ich das daran übergeben kann und ob meine Methode "BackupApp" richtig geschrieben ist, damit sie nur dieses eine Objekt sichert
AlexRock ist offline   Mit Zitat antworten
Alt 01.08.2011, 15:57   #4 (permalink)
Android Guru

Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
Standard AW: Einzelne App sichern

ohne viel zu überlegen würd ich jetzt mal sowas machen

mApps = new ArrayList<App>();
mApps.add(the_one_app_to_backup);

Thread backup_all = new Thread(new BackupAll(mApps));
backup_all.start();

somit übergibst du ihm halt eine arraylist mit nur einem element. wenns mit allen geht, wirds mit einem auch gehn.
__________________
App Entwicklung
Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD )
swordi ist offline   Mit Zitat antworten
Alt 01.08.2011, 16:04   #5 (permalink)
Junior Mitglied

Modell: HTC Hero

Registriert seit: 02.02.2010
Beiträge: 39
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard AW: Einzelne App sichern

Hallo Swordi,
Und was muss in das mApps.add() rein? Woher weiss der nun, welche ich ausgewählt habe? Noch mApps.getId oder sowas?
AlexRock ist offline   Mit Zitat antworten
Alt 01.08.2011, 16:19   #6 (permalink)
Junior Mitglied

Modell: HTC Hero

Registriert seit: 02.02.2010
Beiträge: 39
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard AW: Einzelne App sichern

Habs schon rausgefunden
Code:
backup_app = ProgressDialog.show(MainActivity.this,
                            "Sicherung", "", true, false);
                    mApps = new ArrayList<App>();
                    mApps.add(app);

                    Thread backup_all = new Thread(new BackupApp(mApps));
                    backup_all.start();
AlexRock ist offline   Mit Zitat antworten
Alt 01.08.2011, 16:29   #7 (permalink)
Android Guru

Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
Standard AW: Einzelne App sichern

der code ist ja von dir oder??
da solltest du ja schon wissen was er tut

das scheint mir aber nicht ganz selbst geschrieben.
__________________
App Entwicklung
Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD )
swordi ist offline   Mit Zitat antworten
Alt 01.08.2011, 16:39   #8 (permalink)
Junior Mitglied

Modell: HTC Hero

Registriert seit: 02.02.2010
Beiträge: 39
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard AW: Einzelne App sichern

Hallo Swordi,
ja code ist von mir und nem Freund, der momentan (wie sollte es auch anders sein in den Ferien) in Urlaub ist (er ist schon bewanderter in Java)...

Aber nun klappt es ja

Code:
backup_app = ProgressDialog.show(MainActivity.this,                             "Sicherung", "", true, false);                     mApps = new ArrayList<App>();
mApps.add(app);
Thread backup_all = new Thread(new BackupApp(mApps));
backup_all.start();
AlexRock ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
app´s sichern leichtgemacht mickdry Samsung Galaxy Tab Forum 1 08.07.2011 07:18
App auf SD sichern kanzler007 HTC Desire Forum 5 31.05.2011 20:45
App zum Sichern aller Einstellungen golden eyez Tools 1 26.04.2011 21:56
App um Kontakte zu sichern canada Business und Organisation 4 01.02.2011 09:32
Update App Daten sichern Luser_k Android App Entwicklung 6 17.06.2010 16:52




Du liest gerade: "Einzelne App sichern" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.