بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

سوال در مورد پروژه Note استاد

مدیریت گفتگو
علی 11 سال پیش
آخرین تغییر: 11 سال پیش

من یک پروژه دارم که در منیفست "14"=minSdkVersion  هستش و نمی تونم بیارم پایین تر. حالا پروژه Note استاد 8 تعریف شده . 

وقتی میارم داخل پروژه خودم اررور میده . کجاهاش ساپورت نمیکنه؟ قسمت webservice یا commands  ?

نظرات

محمد 11 سال پیش
سلام. فکر نکنم ربطی به minSdkVersion داشته باشه. احتمالا مشکل از network on main thread باشه. باید ارتباط با سرور رو با یه ترد غیر از ترد اصلی برقرار کنید
علی 11 سال پیش
محمد جان من تست گرفتم که دارم میگم وقتی Version رو میزارم 14 یا 11 دیگه کار نمیکنه. شما خودت یک تست رو پروژه استاد بزن بزار روی 11 یا 14 میبینی که دیگه کار نمیکنه.
محمد 11 سال پیش
ببین توی این لوگی که گذاشتی خط 18 ارور network on main thread داده. دستور command.read یا command.insert رو داخل یه ترد بذار اگه حل نشد مشکل چیز دیگه ایه. (استاد توی این پروژه ارتباط با سرور رو توی ترد اصلی برقرار کرده که برنامه باید کرش میکرده)
علی 11 سال پیش
نتونستم درست کنم. میشه بزارید رو 11 به بعد یک تست بگیرید؟ لطفا.
علی 11 سال پیش
تست نکردید شما؟ من منتظر خبرتون هستم.
محمد 11 سال پیش
شرمنده. فرصت نکردم هنوز
hamidd 11 سال پیش
سوالتون فکر کنم حدود 30 باری پرسیده شده و هر چند روزی یک بار هم پرسیده میشه. عبارت networkonmainthread را درسایت جستجو کنید و یا به این لینک مراجعه کنید.

پاسخ‌ها 3

Alireza_Ghamkhar 11 سال پیش

نظرات

Alireza_Ghamkhar 11 سال پیش

من خیلی خیلی وقت پیش اینجوری حلش کردم. ولی اینم بگم از نظر بهینه بودن و ... تضمینی ندارم چرا که خیلی وقت پیش اینجوریش کردم.

public class Commands extends AsyncTask<Void, Void, Boolean> {

	

	LinearLayout layout = (LinearLayout) NewsFragment.rootView.findViewById(R.id.progressbar_view);
	ListView lstContent  = (ListView) NewsFragment.rootView.findViewById(R.id.lstContent);
	public static void readData() {
		
		
		new Commands().execute();
		

	}

    public static  void updateData(final ArrayList<NameValuePair> params){
    	Thread thread = new Thread(new Runnable() {
			
			@Override
			public void run() {
				WebService.readUrl("null",params);
				
			}
		});
    	 
    	thread.start();
    } 
    public static  void removeData(final ArrayList<NameValuePair> params){
    	Thread thread = new Thread(new Runnable() {
			
			@Override
			public void run() {
			   	 WebService.readUrl("null",params);
				
			}
		});
    		thread.start();
   	
   }

	public static void insertData(final ArrayList<NameValuePair> params) {
    	Thread thread = new Thread(new Runnable() {
			
			@Override
			public void run() {
				WebService.readUrl("null",params);
				
			}
		});

		thread.start();
	}
	
	@Override
	protected Boolean doInBackground(Void... params) {
		DoRead();
		return true;
	}
	
	@Override
	protected void onPreExecute() {
		lstContent.setVisibility(View.INVISIBLE);
		layout.setVisibility(View.VISIBLE);
		super.onPreExecute();
		 
	}
	@Override
	protected void onPostExecute(Boolean result) {
		lstContent.setVisibility(View.VISIBLE);
		layout.setVisibility(View.GONE);
		super.onPostExecute(result);
		
		result =true;
	}
	
	
	
	
	
	private void DoRead() {
		String result = WebService.readUrl("http:..",null);
		   if(result != null){
			   try {
				    G.tasks.clear();
				    JSONArray tasks = new JSONArray(result); 
				    for(int i = tasks.length()-1 ; i>=0;i--){                    
					JSONObject object  = tasks.getJSONObject(i);
					StructTask task = new StructTask();
					task.id = object.getLong("task_id");
					task.title = object.getString("task_title");
					task.desc = object.getString("task_desc");
					task.done = object.getInt("task_done") == 1 ?true:false;
					G.tasks.add(task);
				
				}
			} catch (JSONException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			   
		   }
	}
	
 
  }

نظرات

علی 11 سال پیش
ممنون دوست عزیز . این دو تا رو توضیح میدید؟ کجا کذاشتید.
Alireza_Ghamkhar 11 سال پیش
در کد مشخصه که در کلاس commands هستش
علی 11 سال پیش
من از این کدها هم استفاده کردم ولی بازم نشود . بازم ممنون علی رضا جان
hamidd 11 سال پیش
علی جان شما فیلم های آموزشی بخش تردها و همزمانی رو دیدید؟ باید کدهایی که با شبکه سروکار دارند رو در تردی به غیر از ui thread بنویسید. اگه اون بخش رو ندیدید، ببینیدش و کدهایی که با شبکه سروکار دارند رو در thread base بنویسید. توی اون لینکی هم که بالا دادم جواب مشکلتون هست. الان شما دو هفته گیر این سوال هستید، اگه اون بخش رو ببینید خیلی سریع به جواب سوالتون می رسید.فقط کافیه کار با تردها رو به خوبی بلد بشید.
hamidd 11 سال پیش
اونجایی که گفتم ui thread منظورم main thread بود.
علی 11 سال پیش

 LinearLayout layout = (LinearLayout) NewsFragment.rootView.findViewById(R.id.progressbar_view);
	ListView lstContent  = (ListView) NewsFragment.rootView.findViewById(R.id.lstContent);

نظرات


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