Google Android - это несложно

Добро пожаловать на форум сайта startandroid.ru
Текущее время: 17 ноя 2018, 10:23

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
СообщениеДобавлено: 08 дек 2013, 00:48 

Зарегистрирован: 08 дек 2013, 00:17
Сообщений: 22
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Суть такая: у меня есть класс со статическимим методами, предназначенными для испозьзования в разных классах (активностях, сервисах).

В методах создается стандартный java поток. Как только выполнение кодов доходит до Toast - приложение вылетает. как быть в такой ситуации? Мне нужен класс с методами для вызова из других классов, чтобы этот метод делал все: выводил Toast, обновлял интерфейс активности, которая его вызвала!

Код: [ Загрузить ] [ Скрыть ]
  1. import java.io.IOException; 
  2. import java.io.UnsupportedEncodingException; 
  3. import java.util.ArrayList; 
  4. import java.util.List; 
  5.  
  6. import org.apache.http.HttpEntity; 
  7. import org.apache.http.HttpResponse; 
  8. import org.apache.http.NameValuePair; 
  9. import org.apache.http.ParseException; 
  10. import org.apache.http.client.ClientProtocolException; 
  11. import org.apache.http.client.HttpClient; 
  12. import org.apache.http.client.entity.UrlEncodedFormEntity; 
  13. import org.apache.http.client.methods.HttpPost; 
  14. import org.apache.http.impl.client.DefaultHttpClient; 
  15. import org.apache.http.message.BasicNameValuePair; 
  16. import org.apache.http.util.EntityUtils; 
  17. import org.json.JSONException; 
  18. import org.json.JSONObject; 
  19.  
  20. import android.content.Context; 
  21. import android.util.Log; 
  22. import android.widget.Toast; 
  23.  
  24. public class Wall {// мой класс со статическим методом 
  25.  
  26.     private static final String TAG_Send_Error = "Send_error"; 
  27.     static String res; 
  28.  
  29.     public Wall() { 
  30.  
  31.     } 
  32.  
  33.     public static void Post(final Context context, final String owner_id, final String message, 
  34.             final String access_token) { 
  35.         res = "ok"; 
  36.  
  37.         new Thread(new Runnable() { 
  38.  
  39.             @Override 
  40.             public void run() { 
  41.  
  42.                 // упаковка параметров 
  43.                 List<NameValuePair> params = new ArrayList<NameValuePair>(); 
  44.                 params.add(new BasicNameValuePair("owner_id", owner_id)); 
  45.                 params.add(new BasicNameValuePair("message", message 
  46.                         + Constants.addtext)); 
  47.                 params.add(new BasicNameValuePair("v", Constants.API_VERSION)); 
  48.                 params.add(new BasicNameValuePair("access_token", access_token)); 
  49.                 UrlEncodedFormEntity entity = null; 
  50.                 try { 
  51.                     entity = new UrlEncodedFormEntity(params, "UTF-8"); 
  52.                     Log.d("send", "start message sending"); 
  53.                     HttpPost request = new HttpPost(Constants.API_URI 
  54.                             + "wall.post"); 
  55.                     request.setEntity(entity);// добавление параметров в зарпос 
  56.                     Log.d("send", "start message sending 1"); 
  57.                     HttpClient client = new DefaultHttpClient(); 
  58.                     Log.d("send", "start message sending 2"); 
  59.                     HttpResponse response = null; 
  60.                     response = client.execute(request); 
  61.                     Log.d("send", "start message sending 3"); 
  62.                     HttpEntity entry = response.getEntity(); 
  63.                     Log.d("send", "start message sending 4"); 
  64.                     String responseText = null; 
  65.                     responseText = EntityUtils.toString(entry); 
  66.                     Log.d("send", responseText.toString()); 
  67.                     JSONObject json = null; 
  68.                     json = new JSONObject(responseText); 
  69.                     if (json.has("error")) { 
  70.                         json = json.getJSONObject("error"); 
  71.                         int err = json.getInt("error_code"); 
  72.                         switch (err) { 
  73.                         case 0 - 15: 
  74.                             res = json.getString("error_msg"); 
  75.                             break; 
  76.                         case 16: 
  77.  
  78.                             break; 
  79.                         case 17: 
  80.  
  81.                             break; 
  82.                         case 100: 
  83.                             res = "Пропущен один из параметров"; 
  84.                             break; 
  85.                         } 
  86.                     } else { 
  87.                         res = "Успешно!"; 
  88.                     } 
  89.                 } catch (JSONException e) { 
  90.                     Log.e(TAG_Send_Error, e.toString()); 
  91.                 } catch (UnsupportedEncodingException e1) { 
  92.                     Log.e(TAG_Send_Error, e1.toString()); 
  93.                 } catch (ClientProtocolException e) { 
  94.                     Log.e(TAG_Send_Error, e.toString()); 
  95.                 } catch (IOException e) { 
  96.                     Log.e(TAG_Send_Error, e.toString()); 
  97.                 } catch (ParseException e) { 
  98.                     Log.e(TAG_Send_Error, e.toString()); 
  99.                 } 
  100.                 Toast.makeText(context, res, 3).show(); 
  101.                 // return res; 
  102.             } 
  103.         }); 
  104.     } 

//класс вызывающий метод
Код: [ Загрузить ] [ Скрыть ]
  1.  
  2. import android.app.Activity; 
  3. import android.content.SharedPreferences; 
  4. import android.os.Bundle; 
  5. import android.preference.PreferenceManager; 
  6. import android.util.Log; 
  7. import android.view.View; 
  8. import android.view.View.OnClickListener; 
  9. import android.widget.Button; 
  10. import android.widget.EditText; 
  11. import android.widget.RadioButton; 
  12. import android.widget.Toast; 
  13.  
  14. public class SendTestActivity extends Activity implements OnClickListener { 
  15.  
  16.     private EditText id_edit, txtedit; 
  17.     private RadioButton sms_btn, wall_btn; 
  18.     private Button sendbtn; 
  19.  
  20.     SharedPreferences prf; 
  21.  
  22.     @Override 
  23.     protected void onCreate(Bundle savedInstanceState) { 
  24.         super.onCreate(savedInstanceState); 
  25.         setContentView(R.layout.activity_send_test); 
  26.  
  27.         prf = PreferenceManager.getDefaultSharedPreferences(this); 
  28.  
  29.         id_edit = (EditText) findViewById(R.id.Send_a_id); 
  30.         txtedit = (EditText) findViewById(R.id.Send_A_text); 
  31.         sms_btn = (RadioButton) findViewById(R.id.Send_A_sms); 
  32.         wall_btn = (RadioButton) findViewById(R.id.Send_A_wall); 
  33.         sendbtn = (Button) findViewById(R.id.Send_A_sendbtn); 
  34.         sendbtn.setOnClickListener(this); 
  35.         prf = PreferenceManager.getDefaultSharedPreferences(this); 
  36.  
  37.     } 
  38.  
  39.     @Override 
  40.     public void onClick(View v) { 
  41.  
  42.         switch (v.getId()) { 
  43.         case R.id.Send_A_sendbtn: 
  44.  
  45.             if (sms_btn.isChecked()) { 
  46.  
  47.             } 
  48.             if (wall_btn.isChecked()) { 
  49.                         Wall.Post(getApplicationContext(), 
  50. id_edit.getText().toString(), txtedit.getText().toString(), prf.getString("access_token", "")); 
  51.                          
  52.                     } 
  53.             } 
  54.             txtedit.setText(""); 
  55.             //Toast.makeText(getApplicationContext(), "Успешно отправлено", 3).show(); 
  56.         } 
  57.     } 

Пробовал убирать создание потока из метода Post, и делать в классе SendTestActivity вот такую вещь:
Код: [ Загрузить ] [ Скрыть ]
  1.  
  2.             runOnUiThread(new Runnable() { 
  3.                      
  4.                     @Override 
  5.                     public void run() { 
  6.                         Wall.Post(id_edit.getText().toString(), txtedit.getText() 
  7.                                 .toString(),  
  8. prf.getString("access_token", "")); 
  9.                         Toast.makeText(getApplicationContext(), "ok", 3).show(); 
  10.                     } 
  11.                 }); 


,но приложение вылетает перед выполнением метода или при начале выполнения метода!
как мне быть? Знаю, что есть ASyncTask, но для каждого метода не хочу создавать класс потомок.
Нужен класс с универсальными функциями для вызова откудаугодно и взаимодействия с интерфейсом.


Последний раз редактировалось bagrusss 08 дек 2013, 01:22, всего редактировалось 1 раз.

Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 08 дек 2013, 01:04 
Аватар пользователя

Зарегистрирован: 26 июн 2012, 13:22
Сообщений: 3422
Откуда: UA
Благодарил (а): 11 раз.
Поблагодарили: 244 раз.
1) код нужно приводить в соответствующие теги, ибо читать не возможно;
2) если где то что то падает, первым что нужно - смотреть в лог, если в логе не разбираемся то выкладываем его сюда;
bagrusss писал(а):
Мне нужен класс с методами для вызова из других классов, чтобы этот метод делал все: выводил Toast, обновлял интерфейс активности, которая его вызвала!

Если такой вопрос стоит, то нужно начинать с ООП, знал бы что такое ссылка и интерфейс то вопрос отпал сам собой. И почитай что такое Observer.

_________________
R.id.team
Политика на форуме запрещена


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 08 дек 2013, 01:29 

Зарегистрирован: 08 дек 2013, 00:17
Сообщений: 22
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
rezak90 писал(а):
1) код нужно приводить в соответствующие теги, ибо читать не возможно;
2) если где то что то падает, первым что нужно - смотреть в лог, если в логе не разбираемся то выкладываем его сюда;
bagrusss писал(а):
Мне нужен класс с методами для вызова из других классов, чтобы этот метод делал все: выводил Toast, обновлял интерфейс активности, которая его вызвала!

Если такой вопрос стоит, то нужно начинать с ООП, знал бы что такое ссылка и интерфейс то вопрос отпал сам собой. И почитай что такое Observer.


Я пробовал передавать в качестве параметра указатель на класс SendTestActivity в метод Post и создавать поток таким образом:
Код: [ Загрузить ] [ Скрыть ]
  1. public static void Post(SendTestActivity act, .....){ 
  2.     act.runOnUiThread(new Runnable() { 
  3.                  public void run() { 
  4.  
  5.                      //код моего метода 
  6.                      Toast.makeText(act.getApplicationContext(),...); 
  7.                 } 
  8.             }); 


вызов:

Код: [ Загрузить ] [ Скрыть ]
  1. Wall.Post(this, ...); 


но приложение все равно вылетает.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 08 дек 2013, 01:55 
Аватар пользователя

Зарегистрирован: 26 июн 2012, 13:22
Сообщений: 3422
Откуда: UA
Благодарил (а): 11 раз.
Поблагодарили: 244 раз.
так а логи где?

_________________
R.id.team
Политика на форуме запрещена


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 08 дек 2013, 02:29 

Зарегистрирован: 08 дек 2013, 00:17
Сообщений: 22
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
rezak90 писал(а):
так а логи где?


Итак вариант 1: когда я убрал создание потока из метода Post

Код: [ Загрузить ] [ Скрыть ]
  1.                 runOnUiThread(new Runnable() { 
  2.                      
  3.                     @Override 
  4.                     public void run() { 
  5.                         Wall.Post(id_edit.getText().toString(), txtedit.getText() 
  6.                                 .toString(), prf.getString("access_token", "")); 
  7.                         Toast.makeText(getApplicationContext(), "ok", 3).show(); 
  8.                     } 
  9.                 }); 




    12-08 03:16:21.596: D/MY(31570): Отправка записи на стену
    12-08 03:16:21.611: D/send(31570): start message sending
    12-08 03:16:21.611: D/send(31570): start message sending 1
    12-08 03:16:21.616: D/send(31570): start message sending 2
    12-08 03:16:21.646: D/AndroidRuntime(31570): Shutting down VM
    12-08 03:16:21.646: W/dalvikvm(31570): threadid=1: thread exiting with uncaught exception (group=0x41e172a0)
    12-08 03:16:21.711: E/AndroidRuntime(31570): FATAL EXCEPTION: main
    12-08 03:16:21.711: E/AndroidRuntime(31570): android.os.NetworkOnMainThreadException
    12-08 03:16:21.711: E/AndroidRuntime(31570): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1118)
    12-08 03:16:21.711: E/AndroidRuntime(31570): at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
    12-08 03:16:21.711: E/AndroidRuntime(31570): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
    12-08 03:16:21.711: E/AndroidRuntime(31570): at java.net.InetAddress.getAllByName(InetAddress.java:214)
    12-08 03:16:21.711: E/AndroidRuntime(31570): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
    12-08 03:16:21.711: E/AndroidRuntime(31570): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
    12-08 03:16:21.711: E/AndroidRuntime(31570): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
    12-08 03:16:21.711: E/AndroidRuntime(31570): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
    12-08 03:16:21.711: E/AndroidRuntime(31570): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:670)
    12-08 03:16:21.711: E/AndroidRuntime(31570): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:509)
    12-08 03:16:21.711: E/AndroidRuntime(31570): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
    12-08 03:16:21.711: E/AndroidRuntime(31570): at com.easydevteam.pozdravlenia.Wall.Post(Wall.java:62)
    12-08 03:16:21.711: E/AndroidRuntime(31570): at com.easydevteam.pozdravlenia.SendTestActivity$1.run(SendTestActivity.java:62)
    12-08 03:16:21.711: E/AndroidRuntime(31570): at android.app.Activity.runOnUiThread(Activity.java:4784)
    12-08 03:16:21.711: E/AndroidRuntime(31570): at com.easydevteam.pozdravlenia.SendTestActivity.onClick(SendTestActivity.java:58)
    12-08 03:16:21.711: E/AndroidRuntime(31570): at android.view.View.performClick(View.java:4232)
    12-08 03:16:21.711: E/AndroidRuntime(31570): at android.view.View$PerformClick.run(View.java:17298)
    12-08 03:16:21.711: E/AndroidRuntime(31570): at android.os.Handler.handleCallback(Handler.java:615)
    12-08 03:16:21.711: E/AndroidRuntime(31570): at android.os.Handler.dispatchMessage(Handler.java:92)
    12-08 03:16:21.711: E/AndroidRuntime(31570): at android.os.Looper.loop(Looper.java:137)
    12-08 03:16:21.711: E/AndroidRuntime(31570): at android.app.ActivityThread.main(ActivityThread.java:4921)
    12-08 03:16:21.711: E/AndroidRuntime(31570): at java.lang.reflect.Method.invokeNative(Native Method)
    12-08 03:16:21.711: E/AndroidRuntime(31570): at java.lang.reflect.Method.invoke(Method.java:511)
    12-08 03:16:21.711: E/AndroidRuntime(31570): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027)
    12-08 03:16:21.711: E/AndroidRuntime(31570): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
    12-08 03:16:21.711: E/AndroidRuntime(31570): at dalvik.system.NativeStart.main(Native Method)


Вариант 2:

Когда вызываю метод Post и поток создается в методе
Код: [ Загрузить ] [ Скрыть ]
  1. Wall.Post(getApplicationContext(), id_edit.getText().toString(), txtedit.getText().toString(), prf.getString("access_token", "")); 
  2.                         Toast.makeText(getApplicationContext(), "ok", 3).show(); 


Код: [ Загрузить ] [ Скрыть ]
  1. public static void Post(final Context context ,final String owner_id, final String message, 
  2.             final String access_token) { 
  3.         res = ""; 
  4.  
  5.         new Thread(new Runnable() { 
  6.  
  7.             @Override 
  8.             public void run() { 
  9.  
  10.                                              //код 
  11.                   Toast.makeText(context, res, 3).show(); 
  12.  
  13.             } 
  14.  
  15.         }).start(); 


    12-08 03:27:25.391: D/MY(32410): Отправка записи на стену
    12-08 03:27:25.426: D/send(32410): start message sending
    12-08 03:27:25.431: D/send(32410): start message sending 1
    12-08 03:27:25.471: D/send(32410): start message sending 2
    12-08 03:27:25.881: D/send(32410): start message sending 3
    12-08 03:27:25.886: D/send(32410): start message sending 4
    12-08 03:27:25.891: W/dalvikvm(32410): threadid=16: thread exiting with uncaught exception (group=0x41e172a0)
    12-08 03:27:25.901: E/AndroidRuntime(32410): FATAL EXCEPTION: Thread-2496
    12-08 03:27:25.901: E/AndroidRuntime(32410): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
    12-08 03:27:25.901: E/AndroidRuntime(32410): at android.os.Handler.<init>(Handler.java:121)
    12-08 03:27:25.901: E/AndroidRuntime(32410): at android.widget.Toast$TN.<init>(Toast.java:361)
    12-08 03:27:25.901: E/AndroidRuntime(32410): at android.widget.Toast.<init>(Toast.java:97)
    12-08 03:27:25.901: E/AndroidRuntime(32410): at android.widget.Toast.makeText(Toast.java:254)
    12-08 03:27:25.901: E/AndroidRuntime(32410): at com.easydevteam.pozdravlenia.Wall$1.run(Wall.java:102)
    12-08 03:27:25.901: E/AndroidRuntime(32410): at java.lang.Thread.run(Thread.java:856)

Вариант 3. Передаю указатель на класс SendTestActivity и создаю поток методом runOnUiThread :

Код: [ Загрузить ] [ Скрыть ]
  1. Wall.Post(this, id_edit.getText().toString(), txtedit.getText() 
  2.                                 .toString(), prf.getString("access_token", "")); 


Код: [ Загрузить ] [ Скрыть ]
  1. public static void Post(final SendTestActivity act ,final String owner_id, final String message, 
  2.             final String access_token) { 
  3.         res = "ok"; 
  4.  
  5.         act.runOnUiThread (new Runnable() { 
  6.  
  7.             @Override 
  8.             public void run() { 
  9.  
  10.                                             // упаковка параметров 
  11.                 List<NameValuePair> params = new ArrayList<NameValuePair>(); 
  12.                 params.add(new BasicNameValuePair("owner_id", owner_id)); 
  13.                 params.add(new BasicNameValuePair("message", message 
  14.                         + Constants.addtext)); 
  15.                 params.add(new BasicNameValuePair("v", Constants.API_VERSION)); 
  16.                 params.add(new BasicNameValuePair("access_token", access_token)); 
  17.                 UrlEncodedFormEntity entity = null; 
  18.                 try { 
  19.                     entity = new UrlEncodedFormEntity(params, "UTF-8"); 
  20.                     Log.d("send", "start message sending"); 
  21.                     HttpPost request = new HttpPost(Constants.API_URI 
  22.                             + "wall.post"); 
  23.                     request.setEntity(entity);// добавление параметров в зарпос 
  24.                     Log.d("send", "start message sending 1"); 
  25.                     HttpClient client = new DefaultHttpClient(); 
  26.                     Log.d("send", "start message sending 2"); 
  27.                     HttpResponse response = null; 
  28.                     response = client.execute(request); 
  29.                     Log.d("send", "start message sending 3"); 
  30.                     HttpEntity entry = response.getEntity(); 
  31.                     Log.d("send", "start message sending 4"); 
  32.                     String responseText = null; 
  33.                     responseText = EntityUtils.toString(entry); 
  34.                     Log.d("send", responseText.toString()); 
  35.                     JSONObject json = null; 
  36.                     json = new JSONObject(responseText); 
  37.                     if (json.has("error")) { 
  38.                         json = json.getJSONObject("error"); 
  39.                         int err = json.getInt("error_code"); 
  40.                         switch (err) { 
  41.                         case 0 - 15: 
  42.                             res = json.getString("error_msg"); 
  43.                             break; 
  44.                         case 16: 
  45.  
  46.                             break; 
  47.                         case 17: 
  48.  
  49.                             break; 
  50.                         case 100: 
  51.                             res = "Пропущен один из параметров"; 
  52.                             break; 
  53.                         } 
  54.                     } else { 
  55.                         res = "Успешно!"; 
  56.                     } 
  57.                 } catch (JSONException e) { 
  58.                     Log.e(TAG_Send_Error, e.toString()); 
  59.                 } catch (UnsupportedEncodingException e1) { 
  60.                     Log.e(TAG_Send_Error, e1.toString()); 
  61.                 } catch (ClientProtocolException e) { 
  62.                     Log.e(TAG_Send_Error, e.toString()); 
  63.                 } catch (IOException e) { 
  64.                     Log.e(TAG_Send_Error, e.toString()); 
  65.                 } catch (ParseException e) { 
  66.                     Log.e(TAG_Send_Error, e.toString()); 
  67.                 } 
  68.                                               Toast.makeText(act.getApplicationContext(), res, 3).show(); 
  69.             } 
  70.  
  71.         }); 
  72.     } 

    12-08 03:38:42.711: D/MY(633): Отправка записи на стену
    12-08 03:38:42.736: D/send(633): start message sending
    12-08 03:38:42.736: D/send(633): start message sending 1
    12-08 03:38:42.736: D/send(633): start message sending 2
    12-08 03:38:42.771: D/AndroidRuntime(633): Shutting down VM
    12-08 03:38:42.771: W/dalvikvm(633): threadid=1: thread exiting with uncaught exception (group=0x41e172a0)
    12-08 03:38:42.826: E/AndroidRuntime(633): FATAL EXCEPTION: main
    12-08 03:38:42.826: E/AndroidRuntime(633): android.os.NetworkOnMainThreadException
    12-08 03:38:42.826: E/AndroidRuntime(633): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1118)
    12-08 03:38:42.826: E/AndroidRuntime(633): at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
    12-08 03:38:42.826: E/AndroidRuntime(633): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
    12-08 03:38:42.826: E/AndroidRuntime(633): at java.net.InetAddress.getAllByName(InetAddress.java:214)
    12-08 03:38:42.826: E/AndroidRuntime(633): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
    12-08 03:38:42.826: E/AndroidRuntime(633): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
    12-08 03:38:42.826: E/AndroidRuntime(633): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
    12-08 03:38:42.826: E/AndroidRuntime(633): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
    12-08 03:38:42.826: E/AndroidRuntime(633): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:670)
    12-08 03:38:42.826: E/AndroidRuntime(633): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:509)
    12-08 03:38:42.826: E/AndroidRuntime(633): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
    12-08 03:38:42.826: E/AndroidRuntime(633): at com.easydevteam.pozdravlenia.Wall$1.run(Wall.java:62)
    12-08 03:38:42.826: E/AndroidRuntime(633): at android.app.Activity.runOnUiThread(Activity.java:4784)
    12-08 03:38:42.826: E/AndroidRuntime(633): at com.easydevteam.pozdravlenia.Wall.Post(Wall.java:39)
    12-08 03:38:42.826: E/AndroidRuntime(633): at com.easydevteam.pozdravlenia.SendTestActivity.onClick(SendTestActivity.java:59)
    12-08 03:38:42.826: E/AndroidRuntime(633): at android.view.View.performClick(View.java:4232)
    12-08 03:38:42.826: E/AndroidRuntime(633): at android.view.View$PerformClick.run(View.java:17298)
    12-08 03:38:42.826: E/AndroidRuntime(633): at android.os.Handler.handleCallback(Handler.java:615)
    12-08 03:38:42.826: E/AndroidRuntime(633): at android.os.Handler.dispatchMessage(Handler.java:92)
    12-08 03:38:42.826: E/AndroidRuntime(633): at android.os.Looper.loop(Looper.java:137)
    12-08 03:38:42.826: E/AndroidRuntime(633): at android.app.ActivityThread.main(ActivityThread.java:4921)
    12-08 03:38:42.826: E/AndroidRuntime(633): at java.lang.reflect.Method.invokeNative(Native Method)
    12-08 03:38:42.826: E/AndroidRuntime(633): at java.lang.reflect.Method.invoke(Method.java:511)
    12-08 03:38:42.826: E/AndroidRuntime(633): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027)
    12-08 03:38:42.826: E/AndroidRuntime(633): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
    12-08 03:38:42.826: E/AndroidRuntime(633): at dalvik.system.NativeStart.main(Native Method)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 08 дек 2013, 02:40 
Аватар пользователя

Зарегистрирован: 26 июн 2012, 13:22
Сообщений: 3422
Откуда: UA
Благодарил (а): 11 раз.
Поблагодарили: 244 раз.
1) NetworkOnMainThreadException. Все сетевые операции должны выполняться асинхронно;
2) Can't create handler inside thread that has not called Looper.prepare(). Нелзья обращаться к UI из других потоков (в твоём случае ты вызываешь Toast);
3) смотри 1

_________________
R.id.team
Политика на форуме запрещена


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 08 дек 2013, 02:52 

Зарегистрирован: 08 дек 2013, 00:17
Сообщений: 22
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
rezak90 писал(а):
1) NetworkOnMainThreadException. Все сетевые операции должны выполняться асинхронно;


Я так понял, что вызывая метод runOnUiThread я не создаю потока....


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 08 дек 2013, 12:04 
Аватар пользователя

Зарегистрирован: 26 июн 2012, 13:22
Сообщений: 3422
Откуда: UA
Благодарил (а): 11 раз.
Поблагодарили: 244 раз.
bagrusss писал(а):
rezak90 писал(а):
1) NetworkOnMainThreadException. Все сетевые операции должны выполняться асинхронно;


Я так понял, что вызывая метод runOnUiThread я не создаю потока....

нет, но это не причём, так как ты обращаешься к сети с главного потока

_________________
R.id.team
Политика на форуме запрещена


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB