Android 按back键时显示空白屏幕

Android 按back键时显示空白屏幕,android,facebook-graph-api,facebook-android-sdk,Android,Facebook Graph Api,Facebook Android Sdk,我希望我的应用程序使用fb登录(这是可选的)。因此,首先我将启动我的基本活动,然后将fb活动作为儿童活动。我希望当用户按下后退按钮时,它应该返回到其父活动。对于facebook活动,contentview没有设置,它只是一个空白屏幕。我面临以下问题 当fb活动启动时&我按back键,会出现一个空白屏幕,可能(我不确定)是我没有设置的内容视图。我希望它直接指向父活动&而不是这个空白屏幕 以下是代码: 父活动(启动器) 儿童活动(facebook) 任何帮助???查看代码后,几乎没有任何可能。因为F

我希望我的应用程序使用fb登录(这是可选的)。因此,首先我将启动我的基本活动,然后将fb活动作为儿童活动。我希望当用户按下后退按钮时,它应该返回到其父活动。对于facebook活动,contentview没有设置,它只是一个空白屏幕。我面临以下问题

  • 当fb活动启动时&我按back键,会出现一个空白屏幕,可能(我不确定)是我没有设置的内容视图。我希望它直接指向父活动&而不是这个空白屏幕
  • 以下是代码:

    父活动(启动器)

    儿童活动(facebook)


    任何帮助???

    查看代码后,几乎没有任何可能。因为FB很直截了当,但我不知道你为什么这么做。根据你的密码

    • 如果会话有效,则不进行处理。因此,如果会话有效,请完成活动
    • 您应该处理侦听器中的所有事件
    • 您不应该在onActivityResult中创建新的意图,而应该使用在该函数中传递的意图

    ya如果会话有效,我将无法处理。纠正了这一点。现在只剩下第一个疑问了。如果用户不想登录&他当时按了返回键,就会出现一个空白屏幕。他必须再次按下返回键才能进入家长活动。还请帮助dis…好的,现在当用户按下后退按钮时,您将在facebookMain活动中的“onResume()”上获得流。这就是你使用空白屏幕的原因。我在ImageCrop中遇到了同样的问题,通过使用普通类并将活动传递给该类来解决我的问题。因此,这将不是一个中间活动。您需要传递从中调用FB函数以使用上下文的活动。如果有静态上下文,也可以使用它。
    public class AccountSettingsActivity extends Activity {
        /** Called when the activity is first created. */
            Button registerButton;
            Button fbButton;
    
            AccountSettingsActivity ob ;
            final Context cont = this;
        @Override
        public void onCreate(Bundle savedInstanceState) {   
            super.onCreate(savedInstanceState);
            setContentView(R.layout.account);
            Log.i ("Location_settings", "In Account Settings Class");
    
            registerButton = (Button)this.findViewById(R.id.registerbutton);
            fbButton = (Button)this.findViewById(R.id.fbbutton);
    
            registerButton.setVisibility(1);
    
            //Toast.makeText(cont, "In Accounts Settings", Toast.LENGTH_LONG);
    
    
            fbButton.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {               
                     Log.i("Account-Settings","fb Button clicked");
                     Intent fb = new Intent(AccountSettingsActivity.this,facebookMain.class);
                     fb.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
                     startActivityForResult(fb,0);
    
                }
            });
    
            registerButton.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {               
                     Log.i("Account-Settings","Register Button clicked");
                     ProgressDialog dialog = ProgressDialog.show(AccountSettingsActivity.this, "Syncing with server", "Please wait...", true);
                     new initialsync(dialog).execute("");            
    
                }
            });
    
            fbButton.performClick();
    
        }
    
    }
    
    public class facebookMain extends Activity {
    
        String abc;
        Facebook facebook = new Facebook("1234567890");
        private SharedPreferences mPrefs;
            private Bundle parameters;
            facebookMain ob;
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            /*
             * Get existing access_token if any
             */
    
    
            mPrefs = getPreferences(MODE_PRIVATE);
            String access_token = mPrefs.getString("access_token", null);
            long expires = mPrefs.getLong("access_expires", 0);
            if(access_token != null) {
                facebook.setAccessToken(access_token);
            }
            if(expires != 0) {
                facebook.setAccessExpires(expires);
            }
    
            /*
             * Only call authorize if the access_token has expired.
             */
            if(!facebook.isSessionValid()) {
    
                facebook.authorize(this, new String[] { "read_friendlists", "read_mailbox", "email" }, new DialogListener() {
                    @Override
                    public void onComplete(Bundle values) {
                        SharedPreferences.Editor editor = mPrefs.edit();
                        editor.putString("access_token", facebook.getAccessToken());
    
                        abc = facebook.getAccessToken();
    
    
                        editor.putLong("access_expires", facebook.getAccessExpires());
                        editor.commit();
    
                        Intent intent=new Intent();     
                        intent.putExtra("access token",abc);
                        setResult(RESULT_OK, intent);
                        finish();
                    }
    
                    @Override
                    public void onFacebookError(FacebookError error) {}
    
    
                    @Override
                    public void onCancel() {
                    finish();
                    }
    
                    @Override
                    public void onError(DialogError e) {
                            // TODO Auto-generated method stub
    
                    }
                });
            }
    
            if(facebook.isSessionValid())
            {
                SharedPreferences shared = mPrefs;
    
                abc = shared.getString("access_token", "");
    
                Intent intent=new Intent();     
                intent.putExtra("access_token",abc);
                setResult(RESULT_OK, intent);
                Toast.makeText(ob,"facebook session valid", Toast.LENGTH_SHORT);
                finish();
            }
        }
    
        @Override
        public void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
    
            facebook.authorizeCallback(requestCode, resultCode, data);
    
            AppLog.logger("facebookmain, Back key pressed");
                        Intent intent=new Intent();     
                        intent.putExtra("abc",abc);
                        setResult(RESULT_OK, intent);
                        finish();
        }
    }