分享配置回調Activity中launchMode="singleInstance"的一個坑,singleinstance
在做分享的時候,需要用到一個的回調Activity:WXEntryActivity
需要用到的jar包,可以去開放平台擷取
public class WXEntryActivity extends BaseActivity implements IWXAPIEventHandler {
這個activity需要實現一個介面,介面回呼函數
// 第三方應用發送到的請求處理後的響應結果,會回調到該方法@Overridepublic void onResp(BaseResp resp) {switch (resp.errCode) {case BaseResp.ErrCode.ERR_OK:if(wxresp!=null)wxresp.onSuccess();Toast.makeText(this, "發送成功", Toast.LENGTH_LONG).show();finish();break;case BaseResp.ErrCode.ERR_USER_CANCEL:if(wxresp!=null)wxresp.onFail();Toast.makeText(this, "分享取消", Toast.LENGTH_LONG).show();finish();break;case BaseResp.ErrCode.ERR_AUTH_DENIED:Toast.makeText(this, "分享被拒絕", Toast.LENGTH_LONG).show();finish();break;default:Toast.makeText(this, "分享返回", Toast.LENGTH_LONG).show();break;}}
最後需要注意的是在manifest裡面配置這個activity,必須配置啟動模式為singleInstance,這個啟動模式會開闢另外一個棧來啟動,因為要調用用戶端裡的介面,所以是在另外一個棧來實現,如果對這個模式不是很瞭解,個人覺得郭霖的第一行代碼裡面講的很明了,推薦看看
<activity android:name="com.xxx.xxx.wxapi.WXEntryActivity" android:launchMode="singleInstance" android:exported="true" android:windowSoftInputMode="adjustPan|adjustUnspecified|stateHidden" android:screenOrientation="portrait"/>
這樣這個回調activity才會回調。之前一直沒回調就是因為沒配置singleInstance!!!