Facebook SDK를 사용하여 페이스 북에 로그온하는 응용 프로그램을 만들고 싶습니다. 동일한 기능을 사용하여 로그인 기능을 구현하는 데 성공했습니다. (나는 또한 deprecated 함수를 사용하고 있음을 언급하고자한다. 나중에 더 많은 것들로 넘어갈 것이고, 나는 여기서 내가 마주 치고있는 문제를 먼저 고치고 싶다.) 하지만 로그 아웃 기능을 구현하는 데 문제가 있습니다. 저의 연구를 통해 성능 향상을 위해 AsyncTasks에 네트워크 기능을 구현해야한다는 것을 알았습니다. 그래서, AsyncTask를 사용하여이 기능을 구현해야합니까? 다음은 내 코드입니다. 기본 개념을 정리하기 위해 필요한 수정 사항과 추가 판독 값 및 조항을 제안하십시오. 나는 Android에 익숙하지 않고 AsyncTasks를 이해하는 데 문제가 있습니다. 다음과 같이 세션이 무효가되어, 내가 아무 문제없이 내가 페이스 북에 로그온 구독하기 버튼을 클릭 하고있는 경우Facebook SDK를 사용하여 페이스 북을위한 로그 아웃 기능을 구현하기 위해 AsyncTask 사용
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.fb_button:
try{
if(fb.isSessionValid())
{
new myAsyncClass().doInBackground(fb);
//button close session
}
else
{
fb.authorize(LoginPage.this, new DialogListener(){
@Override
public void onFacebookError(FacebookError e)
{
Toast.makeText(LoginPage.this, "on Facebook error", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(DialogError e)
{
Toast.makeText(LoginPage.this, "on error", Toast.LENGTH_SHORT).show();
}
@Override
public void onComplete(Bundle values)
{
update_fb_buttonimage();
Toast.makeText(getBaseContext(), "onComplete works",Toast.LENGTH_LONG).show();
}
@Override
public void onCancel()
{
}
});
//login in to facebook
}
}catch(Exception e){
Toast.makeText(getBaseContext(), e.toString(), Toast.LENGTH_LONG).show();
}
내 AsyncTask를 클래스는 .... 내 스위치 경우에 따라서
private class myAsyncClass extends AsyncTask<Facebook, Void, Void>{
protected void onPreExecute() {
// update the UI immediately after the task is executed
super.onPreExecute();
}
@Override
protected Void doInBackground(Facebook... arg0) {
// TODO Auto-generated method stub
Facebook fb=arg0[0];
try {
fb.logout(getApplicationContext());
update_fb_buttonimage();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
입니다 내보기 (버튼)도 업데이트됩니다. 세션이 유효한 때 하지만, 난 내가
new myAsyncClass().doInBackground(fb);
저를 제안 해주십시오 내 배치해야합니다 유명한 예외
android.os.networkonmainthreadexception
를 얻을! 나는 완전히 붙어있다. AsyncTask를 호출하면서
나는 무엇을 말 했는가. 하지만 지금은 내 응용 프로그램이 충돌하고있다 – user2056245
LogCat을 올리시겠습니까? – Swayam
전체 코드를 보낼 수 있습니까? 아마 Facebook에? – user2056245