Android:新浪微博分享多个页面回调不能直接回到调用的Activity问题

来源:互联网 发布:xp系统显示网络有重名 编辑:程序博客网 时间:2024/06/05 19:43

当APP中有不止一个界面使用sina分享时,分享结束后会提示选择回调的activity,这时网上的解决方法大多是新建一个空白的activity,然后在这里处理weibo 分享的所有事情,之后finish activity。这样总感觉怪怪的,分享使用bitmap 会占用内存,而且不同分享界面业务可能不同,处理起来还是挺麻烦的,推荐另外一种解决方法:(模仿微信)参考链接

新建一个WBEntryActivity,修改注册信息:

        <activity android:name=".activity.WBEntryActivity"            android:configChanges="keyboardHidden|orientation"            android:launchMode="singleTask"            android:screenOrientation="portrait"            android:windowSoftInputMode="stateAlwaysHidden">            <intent-filter>                <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY"/>                <category android:name="android.intent.category.DEFAULT"/>            </intent-filter>        </activity>

<intent-filter>只放在这个activity中,然后是WBEntryActivity:

public class WBEntryActivity extends Activity implements IWeiboHandler.Response{    //sian微博分享    private IWeiboShareAPI mWeiboShareAPI;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);//        // 创建微博分享接口实例        mWeiboShareAPI = WeiboShareSDK.createWeiboAPI(this,weibo_appkey);        mWeiboShareAPI.registerApp();        mWeiboShareAPI.handleWeiboResponse(getIntent(), this);    }    /**     * @see {@link Activity#onNewIntent}     */    @Override    protected void onNewIntent(Intent intent) {        super.onNewIntent(intent);        setIntent(intent);        // 从当前应用唤起微博并进行分享后,返回到当前应用时,需要在此处调用该函数        // 来接收微博客户端返回的数据;执行成功,返回 true,并调用        // {@link IWeiboHandler.Response#onResponse};失败返回 false,不调用上述回调        mWeiboShareAPI.handleWeiboResponse(intent, this);    }    @Override    public void onResponse(BaseResponse baseResponse) {        if(baseResponse!= null){            switch (baseResponse.errCode) {                case WBConstants.ErrorCode.ERR_OK:                    Helper.showMsg(this, "分享成功");                    break;                case WBConstants.ErrorCode.ERR_CANCEL:                    Helper.showMsg(this, "分享取消");                    break;                case WBConstants.ErrorCode.ERR_FAIL:                    Helper.showMsg(this,"分享失败"+ "Error Message: " + baseResponse.errMsg);                    break;            }        }        this.finish();    }}

这一点微信还是做得挺好的!

0 0
原创粉丝点击