2017-10-08 133 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方法时。 谢谢你 –