먼저 내 질문을 명확히하겠습니다.파싱하는 동안 스레딩
저는 이것을 (DOM을 사용하여) 데이터를 파싱하고 내 listview에 바인딩합니다. 반응이 오래 걸린다는 것을 알게 될 때까지 모든 것이 잘 작동합니다. 그것을 성취하기 위해, 나는 그것을 실 속에 넣어야한다는 생각을했습니다. 그래서 필자는 스레드를 확장하는 클래스를 추가했습니다.
내
public void SetFriendString()
{
XMLParser parser2 = new XMLParser();
parser2.getXmlFromUrl(URL_HERE);
//HTTP POST
String url_Getmembermob= URL_FBFRIEND ;
//String xml_getMembermob=null;
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url_Getmembermob);
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(4);
nameValuePairs.add(new BasicNameValuePair("oAuth", "Test123"));
nameValuePairs.add(new BasicNameValuePair("""", modGen...));
nameValuePairs.add(new BasicNameValuePair("", modGen....));
nameValuePairs.add(new BasicNameValuePair("", "here"));
//Log.i("nameValuePairs", "nameValuePairs=" + nameValuePairs);
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse httpResponse = httpclient.execute(httppost);
HttpEntity httpEntity = httpResponse.getEntity();
FBFRIENDS = EntityUtils.toString(httpEntity);
Button GetFriends =(Button) findViewById(R.id.btnAllFriends);
GetFriends.setBackgroundDrawable(getResources().getDrawable(R.drawable.leftcornerclicked));
KEY_FRIENDSDATA = FBFRIENDS;
Log.i("xml-return",""+ FBFRIENDS);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
을 구문 분석에 코드와는 닫 이제
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_friends);
mContext = this;
pDialog = new ProgressDialog(this);
pDialog.setMessage("Loading All Merchants...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
pDialog.show();
//Set All Required data
thread t = new thread();
t.start();
내에서 OnCreate
에 내 응용 프로그램의 힘을이 클래스 public class thread extends Thread {
public void run() {
SetFriendString();
//SetMyRequestString();
//SetMyFriendRequestString();
pDialog.dismiss();
}
}
지금은이 클래스를 호출하고 추가. 디버거를 사용하여 스레드가 내 메서드를 건너 뛴다는 것을 알게되었습니다. 왜 그런가요?
10-29 11:13:29.411: E/AndroidRuntime(2463): FATAL EXCEPTION: main
10-29 11:13:29.411: E/AndroidRuntime(2463): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.fb.connect/com.fb.connect.MyFriendsAdd}: java.lang.NullPointerException
10-29 11:13:29.411: E/AndroidRuntime(2463): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
10-29 11:13:29.411: E/AndroidRuntime(2463): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
10-29 11:13:29.411: E/AndroidRuntime(2463): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
10-29 11:13:29.411: E/AndroidRuntime(2463): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
10-29 11:13:29.411: E/AndroidRuntime(2463): at android.os.Handler.dispatchMessage(Handler.java:99)
10-29 11:13:29.411: E/AndroidRuntime(2463): at android.os.Looper.loop(Looper.java:130)
10-29 11:13:29.411: E/AndroidRuntime(2463): at android.app.ActivityThread.main(ActivityThread.java:3683)
10-29 11:13:29.411: E/AndroidRuntime(2463): at java.lang.reflect.Method.invokeNative(Native Method)
10-29 11:13:29.411: E/AndroidRuntime(2463): at java.lang.reflect.Method.invoke(Method.java:507)
10-29 11:13:29.411: E/AndroidRuntime(2463): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
10-29 11:13:29.411: E/AndroidRuntime(2463): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
10-29 11:13:29.411: E/AndroidRuntime(2463): at dalvik.system.NativeStart.main(Native Method)
10-29 11:13:29.411: E/AndroidRuntime(2463): Caused by: java.lang.NullPointerException
10-29 11:13:29.411: E/AndroidRuntime(2463): at com.fb.connect.MyFriendsAdd.SetAllFacebookFriends(MyFriendsAdd.java:193)
10-29 11:13:29.411: E/AndroidRuntime(2463): at com.fb.connect.MyFriendsAdd.onCreate(MyFriendsAdd.java:145)
10-29 11:13:29.411: E/AndroidRuntime(2463): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-29 11:13:29.411: E/AndroidRuntime(2463): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
10-29 11:13:29.411: E/AndroidRuntime(2463): ... 11 more
'SetAllFacebookFriends' 메소드 코드를'MyFriendsAdd' 클래스에 공유 할 수 있습니까? –