آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشکل عجیب!!

abdolsalam  11 سال پیش  11 سال پیش
0 0

سلام دوستان و اساتید عزیز

من یه مشکل عجیبو غریب دارم ممنون میشم راهنمایی م کنید

من یه سری عکس که حجمشون زیاد نیست رو سرور دارم و طبق آموزش ImageOptimization استاد این عکسا رو از روی سرور می خونم و داخل یه لیست ویو که خودم ساختم و حدودا 9 تا ویو داره میزارم، وختی روی Emulator (اگه درست نوشته باشم :) ) اجرا میکنم هیچ مشکلی ندارم و برنامه بدون کرش اجرا میشه ولی وختی برنامه رو میریزم رو گوشی خودم که رمش یک گیگه و نصب می کنم و اجرا می کنم دفه اول که فایلای عکس روی موبایل دانلود نشده برنامه درست اجرا میشه و عکسا میاد ولی وختی از برنامه کامل خارج میشم و دوباره اجراش می کنم برنامه کرش می کنه :(

اول فک میکردم بخاطر اینه که عکسا حجش زیاده ولی خیلی حجمشون آوردم پایین طوری که کلا شد 70 کیلو بایت ولی بازم مشکل حل نشد و برنامه م کرش میکنه

اینم کداها:

        public static ArrayAdapter<StructCourse> adapter;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		init();
	}

	private void init() {
		// ActionbarHidder.hide(this);
		getActionBar().setBackgroundDrawable(
				new ColorDrawable(Color.parseColor("#26ae90")));

		final ListView lstContent = (ListView) findViewById(R.id.lstContent);
		adapter = new AdapterCource(G.cources);
		lstContent.setAdapter(adapter);
		fillCourceFromServer();
		adapter.notifyDataSetChanged();
	}

	private void fillCourceFromServer() {
		Thread t = new Thread(new Runnable() {
			@Override
			public void run() {
				String result = WebService
						.readUrl(
								"http://192.168.1.4/EUNI-Demo/cource.php?tag=get_cource",
								null);
				try {
					JSONArray json = new JSONArray(result);
					for (int i = 0; i < json.length(); i++) {
						StructCourse cource = new StructCourse();
						JSONObject obj = json.getJSONObject(i);
						cource.imgCourse = obj.getString("img");
						cource.title = obj.getString("title");
						cource.teacher = obj.getString("teacher");
						cource.desc = obj.getString("desc");
						cource.like = obj.getString("like");
						cource.comment = obj.getString("comment");
						cource.downloaded = obj.getString("downloaded");
						cource.price = obj.getString("price");
						G.cources.add(cource);
					}
				} catch (JSONException e) {
					e.printStackTrace();
				}
			}
		});
		t.start();
	}

 

در این حالت وختی برنامه رو روی گوشی اجرا می کنم لیستو بهم نشون نمیده(اصلا) ولی وختی گوشی رو میچرخونم لیست نمایش داده میشه ولی اطلاعات دوبار میاد یعنی یه بار عکسا از اول تا اخر و دفه دوم دوباره میان ولی وختی اون تابع نوتیفای دیتاست چنج رو میارم توو ترد برنامه کرش میکنه(روی گوشی البته)

اینم کد حالت دوم که برنامه کرش میکنه:

 private void fillCourceFromServer() {
		Thread t = new Thread(new Runnable() {
			@Override
			public void run() {
				String result = WebService
						.readUrl(
								"http://192.168.1.4/EUNI-Demo/cource.php?tag=get_cource",
								null);
				try {
					JSONArray json = new JSONArray(result);
					for (int i = 0; i < json.length(); i++) {
						StructCourse cource = new StructCourse();
						JSONObject obj = json.getJSONObject(i);
						cource.imgCourse = obj.getString("img");
						cource.title = obj.getString("title");
						cource.teacher = obj.getString("teacher");
						cource.desc = obj.getString("desc");
						cource.like = obj.getString("like");
						cource.comment = obj.getString("comment");
						cource.downloaded = obj.getString("downloaded");
						cource.price = obj.getString("price");
						G.cources.add(cource);
						adapter.notifyDataSetChanged();
					}
				} catch (JSONException e) {
					e.printStackTrace();
				}
			}
		});
		t.start();
	}
 

لطفا راهنمایی کنید موندم چی کار کنم!!

 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
abdolsalam  11 سال پیش
0 0

کسی نیست راهنمایی کنه؟

پاسخ به سوال 
abdolsalam  11 سال پیش
+2 0

سلام دوستان

من مشکلو پیدا کردم و برنامه م درست شد

کدو جدید با استفاده از یه کلاس جدید نوشتم و کلاس رو از AsyncTask ارث بری کردم و چون این کلاس ترد خودشو داره برنامه کرش نمیکنه.

جوابشو گذاشتم شاید دوستان مشکل مشابه داشته باشن


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .