2017-10-08 38 views
0

UPDATEAndroid的Facebook的登錄集成 - 問題的頭像

問題1解決

我已經解決了無法從getApplicationContext改變滑翔的背景下HomeActivity加載配置文件PIC的問題這個和圖像加載很快。 :) 但仍然需要你的幫助,與其他兩個問題。如果我做對了還是錯,以及如何避免這個錯誤。


問題1

到目前爲止,我已經成功連接我的Facebook登錄的應用程序,但問題是資料圖片。 我所做的是創造了2個活動: - 1.活動1中Facebook的登錄按鈕 2.首頁活動的應用程序。

如果用戶登錄,它進入活動2,如果沒有他去活動1.

練習1,我的姓名和個人資料照片沒有按」取象出生日期和電子郵件地址的基本信息t需要使用GraphRequest來獲取。 (爲了能夠保存在我的服務器上)

在活動2上,我提取了用戶名和個人資料圖片。這裏的代碼: -

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_home); 
    im = (ImageView) findViewById(R.id.img); 
    name = (EditText) findViewById(R.id.name); 
    try { 
     String url = Profile.getCurrentProfile().getProfilePictureUri(150,150).toString(); 
      name.setText(" "+Profile.getCurrentProfile().getName()+"\n"+Profile.getCurrentProfile().getId()); 
     Glide.with(getApplicationContext()).load(url).into(im); 
    } catch (Exception e){ 
      Toast.makeText(this, "Error : "+e , Toast.LENGTH_SHORT).show(); 
     } 
} 

直到2天后,配置文件圖片加載正常,但從今天它根本不加載。

問題2

另一個問題,我是,有時我得到一個錯誤信息,當我登錄並在首頁的活動得到的,這是同樣的快照: -

enter image description here

問題3

最後一個問題是如何從活動2中關閉整個應用程序。 我已經把現在做的是在活動1使用的處理程序,使上面的錯誤不來,然後使用意圖以及其下的使用結束()方法上的活動1,並在活動2: -

public void onBackPressed() { 
    onStop(); 
    onDestroy(); 
    finish(); 
} 

回答

1

問題3

從活動1創建一個功能onActivityResult 並且一定要使用startActivityForResult調用活動2,而不是startActivity

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    startActivityForResult(new Intent(this, ActivityTwo.class), 1); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (resultCode == RESULT_OK) { 
     if (data.getBooleanExtra("EXIT", false)) { 
      finish(); 
     } 
    } 
} 

以及使用該onBackPressed從活動2關閉整個應用程序。 不要忘記刪除super.onBackPressed()

@Override 
public void onBackPressed() { 
    // super.onBackPressed(); 
    Intent intent = new Intent(); 
    intent.putExtra("EXIT", true); 
    setResult(RESULT_OK, intent); 
    finish(); 
} 
+0

這不幫助,但在真實設備上我的方法也被莫名其妙地工作,但應用程序是在模擬器崩潰使用backpressed方法時。 謝謝你 –