ورود

View Full Version : برای دانلود فایل از اینترنت به جز حلقه while آیا دستور دیگری هست؟



mrtzxxx
یک شنبه 18 اسفند 1392, 20:45 عصر
از اساتیدی که میدونن چه جوری میشه یه فایل رو از اینترنت دانلود کرد بدون استفاده از حلقه while کمک کنند . یه چیزهایی راجب به intent download manager شنیدم ولی نتونستم کدی تو اینترنت پیدا کنم . اگه کسی نمونه کدی داره یا میدونه چه جوری میشه اینکارو کرد کمک کنه.

mrtzxxx
دوشنبه 19 اسفند 1392, 09:29 صبح
یا تاپیک تکراریه یا دوستان کم لطف شدن.

rubiks.kde
دوشنبه 19 اسفند 1392, 11:32 صبح
دوست عزیز ، شما میدونید چرا while میزارن؟
while می زارم که ورودی رو تا آخر بخون حالا از for هم میشه استفاده کرد و از do while هم میشه استفاده کرد.
سوال شما فاقد محتوا هست.

برای دانلود چندین روش وجود داره تمامی روش ها رو اینجا (http://stackoverflow.com/questions/3028306/download-a-file-with-android-and-showing-the-progress-in-a-progressdialog) میتونی ببینی.

mrtzxxx
دوشنبه 19 اسفند 1392, 12:54 عصر
دوست عزیز ، شما میدونید چرا while میزارن؟
while می زارم که ورودی رو تا آخر بخون حالا از for هم میشه استفاده کرد و از do while هم میشه استفاده کرد.
سوال شما فاقد محتوا هست.



شما ناسلامتی مدیر بخش هستین این صحبتها از شما بعیده عزیز جان. یا منظور بنده رو نگرفتید یا واقعا چیزی نمیدونید . من منظورم این بود اگر اینتنت داره اگر با فایل منیجر میشه دانلود کرد و کدی داره که بدون حلقه اجرا بشه اینجا بزارید . حالا هم اگر چیزی میدونید بذارید.

این لینکی هم گه گذاشتید یا با حلقه دانلود میکنه یا در حین دانلود کنسل نمیکنه یا کنسل میشه ولی در پشت زمینه دانلود ادامه داره یا دانلود نیمه کاره تموم میشه یا مشکل بافر داره تمام این مشکلات هم روی همه نسخه های اندروید نیست روی بعضی هاشونه فقط . من این راه ها رو همه رو امتحان کردم. منم میدونم حلقه رو میزارن که تا آخر فایل رو بخونه ولی من روشی رو میخواستم که بدون حلقه باشه. با تشکر

rubiks.kde
دوشنبه 19 اسفند 1392, 15:39 عصر
از اساتیدی که میدونن چه جوری میشه یه فایل رو از اینترنت دانلود کرد بدون استفاده از حلقه while کمک کنند .

شما از این چه برداشتی دارید؟واقعا با حلقه فایل دانلود میکنن.
دوست عزیز ما ذهن خوان و یا ... نیستیم که بدونیم توی ذهن شما چیه ، شما باید منظورتون رو درست برسونید.

اون چیزی هم که میگی استفاده از سرویس دانلود هست و اینم یه نمونش.

فایل main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button android:text="Start Download" android:id="@+id/button1"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:onClick="onClick"></Button>
<Button android:text="View Downloads" android:id="@+id/button2"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:onClick="showDownload"></Button>
<ImageView android:layout_height="wrap_content" android:id="@+id/imageView1"
android:src="@drawable/icon" android:layout_width="wrap_content"></ImageView>

</LinearLayout>

فایل DownloadManagerActivity

public class DownloadManagerActivity extends Activity { private long enqueue;
private DownloadManager dm;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(a ction)) {
long downloadId = intent.getLongExtra(
DownloadManager.EXTRA_DOWNLOAD_ID, 0);
Query query = new Query();
query.setFilterById(enqueue);
Cursor c = dm.query(query);
if (c.moveToFirst()) {
int columnIndex = c
.getColumnIndex(DownloadManager.COLUMN_STATUS);
if (DownloadManager.STATUS_SUCCESSFUL == c
.getInt(columnIndex)) {

ImageView view = (ImageView) findViewById(R.id.imageView1);
String uriString = c
.getString(c
.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI)) ;
view.setImageURI(Uri.parse(uriString));
}
}
}
}
};

registerReceiver(receiver, new IntentFilter(
DownloadManager.ACTION_DOWNLOAD_COMPLETE));
}

public void onClick(View view) {
dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
Request request = new Request(
Uri.parse("http://www.vogella.de/img/lars/LarsVogelArticle7.png"));
enqueue = dm.enqueue(request);

}

public void showDownload(View view) {
Intent i = new Intent();
i.setAction(DownloadManager.ACTION_VIEW_DOWNLOADS) ;
startActivity(i);
}

}

mrtzxxx
دوشنبه 19 اسفند 1392, 17:12 عصر
خدا خیرتون بده منظورم همین بود . فقط یه سوال دیگه فایلی رو که دانلود میکنه تو شاخه دانلودها نشون نمیده و اینکه بخوام مسیر دانلود رو خودم بهش بدم باید چیکار کنم؟؟

rubiks.kde
دوشنبه 19 اسفند 1392, 21:09 عصر
کلاس Request تمام توابع رو داره