| |||||||
Das Thema "Einzelne App sichern" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #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
| 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(); 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;
}
}
}; 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(); 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);
}
} |
| | |
| | #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
|
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. |
| | |
| | #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
|
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 |
| | |
| | #4 (permalink) |
| Android Guru Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
|
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 ) |
| | |
| | #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
|
Hallo Swordi, Und was muss in das mApps.add() rein? Woher weiss der nun, welche ich ausgewählt habe? Noch mApps.getId oder sowas? |
| | |
| | #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
|
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(); |
| | |
| | #7 (permalink) |
| Android Guru Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
|
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 ) |
| | |
| | #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
|
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(); |
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| 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 |