关于连接接入点的问题
目前写了一个需要用到网络连接的程序,目前是这么实现接入点连接的......
TCommDbConnPref connectPref;
connectPref.SetDialogPreference(ECommDbDialogPrefPrompt);
connectPref.SetBearerSet(ECommDbBearerWLAN | ECommDbBearerGPRS);
connectPref.SetDirection(ECommDbConnectionDirectionUnknown);
TRequestStatus iStatus;
iConnection.Start(connectPref, iStatus);
User::WaitForRequest(iStatus);
......
现在的问题是User::WaitForRequest这里会等待比较长的时间,而由于是在主线程里面做的,所以也无法在等待过程中刷新界面了(就是想在界面上做一些"连接中"的提示和动态效果).
假如我不调用User::WaitForRequest来保证连接过程已经结束, 我应该怎么获得"连接过程结束"这一事件并且通过类似回调函数的方法做后续处理呢? --------------------编程问答-------------------- start可以只输入一个参数,如下例子
TCommDbConnPref prefs;
prefs.SetDialogPreference(ECommDbDialogPrefPrompt);
prefs.SetDirection(ECommDbConnectionDirectionOutgoing);
prefs.SetBearerSet(ECommDbBearerGPRS|ECommDbBearerWLAN|ECommDbBearerVirtual);
err=iConnection.Start(prefs);
if(err==KErrNone)
{
iConnection.GetIntSetting(KIapIdSettingName,iIap.iId);
iConnection.GetDesSetting(KIapNameSettingName,iIap.iName);
TBuf<20> Iap;
Iap.AppendNum((TInt)(iIap.iId));
//写入接入点信息
iCameraSetting.iIapIndex = iIap.iId;
iCameraSetting.iIapName = iIap.iName;
iSocketServConnected = ETrue;
CheckPngAndDownload();
return KErrNone;
}
else
return err; --------------------编程问答--------------------
那也是同步的方式吧, 我现在是需要在等待连接的过程中在界面上做相应提示, 然后连接完成后有回调函数的方法
--------------------编程问答-------------------- 使用异步方式啊
用AO --------------------编程问答-------------------- 那就用你的那个,
TRequestStatus iStatus;
iConnection.Start(connectPref, iStatus);
//User::WaitForRequest(iStatus);//注意这儿不要等待,使用AO异步处理 --------------------编程问答-------------------- AO的用法,查一下CActive --------------------编程问答-------------------- iConnection.Start(connectPref, iStatus); 使用这个是对的
同时网络有你一个观察者 用来监听网络的状态的 在RConnect 这个类中有介绍的 --------------------编程问答--------------------
Right.
补充:移动开发 , Symbian