小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

在android中,Twitter4j API沒(méi)有重定向到按下按鈕的應(yīng)用程序

 印度阿三17 2019-06-30

我在android中使用Twitter4j API,當(dāng)我從twitter瀏覽器屏幕按回按鈕取消授權(quán)時(shí),它將我?guī)Щ氐絇repareRequestTokenActivity的onResume()(twitter4j api提供的活動(dòng)),我正在從onResume完成此活動(dòng),但是當(dāng)授權(quán)是成功的,然后它也會(huì)轉(zhuǎn)到onResume()然后轉(zhuǎn)到相同活動(dòng)的onNewIntent()方法,但是活動(dòng)從恢復(fù)完成并且身份驗(yàn)證失敗.有沒(méi)有辦法從twitter瀏覽器屏幕捕獲后退按鈕?以下是活動(dòng).

public class PrepareRequestTokenActivity extends Activity {



        public static final String CONSUMER_KEY = "Hr8aDOFeDdY9UbvQB0w2w";
        public static final String CONSUMER_SECRET= "wfZOJYkYVEYrmdmltOaKfRdnUfSiUkr2MQdjRUY2xU";

        public static final String REQUEST_URL = "http://twitter.com/oauth/request_token"; //"https://api.twitter.com/oauth/request_token"
        public static final String ACCESS_URL = "http://twitter.com/oauth/authorize"; //"https://api.twitter.com/oauth/authorize"
        public static final String AUTHORIZE_URL = "http://twitter.com/oauth/access_token"; //"https://api.twitter.com/oauth/access_token"

        final public static String OAUTH_CALLBACK_SCHEME = "droidnotify-oauth-twitter";
        final public static String OAUTH_CALLBACK_URL = OAUTH_CALLBACK_SCHEME   "://callback";

        private boolean _debug = false;
    private OAuthConsumer _consumer; 
    private OAuthProvider _provider;


        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                _debug = Log.getDebug();
                if (_debug) Log.v("PrepareRequestTokenActivity.onCreate()");
        try {
                _consumer = new CommonsHttpOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
            //_provider = new CommonsHttpOAuthProvider(REQUEST_URL, ACCESS_URL, AUTHORIZE_URL);
            _provider = new DefaultOAuthProvider(REQUEST_URL, ACCESS_URL, AUTHORIZE_URL);
        } catch (Exception ex) {
                if (_debug) Log.e("PrepareRequestTokenActivity.onCreate() Error creating consumer / provider: "   ex.toString());
                }
        if (_debug) Log.v("PrepareRequestTokenActivity.onCreate() Starting task to retrieve request token.");
                new OAuthRequestTokenTask(this, _consumer, _provider).execute();
        }


        @Override
        public void onNewIntent(Intent intent) {
                super.onNewIntent(intent); 
                if (_debug) Log.v("PrepareRequestTokenActivity.onNewIntent()");
                SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
                final Uri uri = intent.getData();
                if (uri != null && uri.getScheme().equals(OAUTH_CALLBACK_SCHEME)) {
                        if (_debug) Log.v("PrepareRequestTokenActivity.onNewIntent() Callback received : "   uri);
                        if (_debug) Log.v("PrepareRequestTokenActivity.onNewIntent() Retrieving Access Token");
                        new RetrieveAccessTokenTask(this, _consumer, _provider, prefs).execute(uri);
                        finish();       
                }
        }


        public class RetrieveAccessTokenTask extends AsyncTask<Uri, Void, Void> {

                private Context _context;
                private OAuthProvider _provider;
                private OAuthConsumer _consumer;
                private SharedPreferences _prefs;


                public RetrieveAccessTokenTask(Context context, OAuthConsumer consumer,OAuthProvider provider, SharedPreferences prefs) {
                        _context = context;
                        _consumer = consumer;
                        _provider = provider;
                        _prefs=prefs;
                }


                @Override
                protected Void doInBackground(Uri...params) {
                        final Uri uri = params[0];
                        final String oauth_verifier = uri.getQueryParameter(OAuth.OAUTH_VERIFIER);
                        try {
                                _provider.retrieveAccessToken(_consumer, oauth_verifier);
                                final Editor edit = _prefs.edit();
                                edit.putString(OAuth.OAUTH_TOKEN, _consumer.getToken());
                                edit.putString(OAuth.OAUTH_TOKEN_SECRET, _consumer.getTokenSecret());
                                edit.commit();
                                String token = _prefs.getString(OAuth.OAUTH_TOKEN, "");
                                String secret = _prefs.getString(OAuth.OAUTH_TOKEN_SECRET, "");
                                _consumer.setTokenWithSecret(token, secret);
                                //_context.startActivity(new Intent(_context, AndroidTwitterSample.class));
                                //executeAfterAccessTokenRetrieval();
                                Toast.makeText(_context, "Twitter Authentication Successfull", Toast.LENGTH_LONG);
                                Toast.makeText(_context, "OAuth.OAUTH_TOKEN KEY: "   OAuth.OAUTH_TOKEN   ", OAuth.OAUTH_TOKEN Value: "   _consumer.getToken(), Toast.LENGTH_LONG);
                                Toast.makeText(_context, "OAuth.OAUTH_TOKEN_SECRET KEY: "   OAuth.OAUTH_TOKEN_SECRET   ", OAuth.OAUTH_TOKEN_SECRET Value: "   _consumer.getTokenSecret(), Toast.LENGTH_LONG);
                                if (_debug) Log.v("OAuth - Access Token Retrieved");

                        } catch (Exception ex) {
                                if (_debug) Log.e("OAuth - Access Token Retrieval Error: "   ex.toString());
                        }
                        return null;
                }


        }       

}

解決方法:

只需將一個(gè)布爾標(biāo)志初始化為false,使其在PrepareRequestTokenActivity的onNewIntent()函數(shù)中為true,并在onResume函數(shù)中添加一個(gè)if條件,如果此標(biāo)志為false則完成活動(dòng),如果為true則不執(zhí)行任何操作,即單擊后退按鈕時(shí)從瀏覽器它直接轉(zhuǎn)到onResume,此時(shí)你的標(biāo)志將是假的,然后這個(gè)活動(dòng)將完成,當(dāng)成功或不,謝謝它將首先轉(zhuǎn)到onNewIntent()然后onResume,所以是真的然后活動(dòng)將不會(huì)完成

來(lái)源:https://www./content-1-282501.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀(guān)點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多