0
当我尝试从onActivityResult启动套接字时,它总是超时......我试图做的是启动Activity,它从onActivityResult开始套接字连接但没有成功,但是当套接字没有问题从其他地方开始,而不是从onActivityResult调用。这是我调用startActivityForResult和onActivityResult的代码。我很确定我在做这个错误...任何推向正确的方向?android onActivityResult套接字超时
public void scanNow(View view){
Intent intent = new Intent("com.blah.Blah.client.android.SCAN");
intent.putExtra("com.blah.Blah.client.android.SCAN.SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, 0);
Log.d("debug tag", "started activity");
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent)
{
Log.d("debug tag", "inside onActivityResult");
if (requestCode == 0)
{
if (resultCode == RESULT_OK)
{
String contents = intent.getStringExtra("SCAN_RESULT");
String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
Log.i("debug tag", "contents: "+contents+" format: "+format);
Intent myIntent = new Intent(com.blah.Blah.Ads);
startActivity(myIntent);
// Handle successful scan
}
else if (resultCode == RESULT_CANCELED)
{
// Handle cancel
Log.i("debug tag", "Cancelled from main");
}
}
}
你说,你得到一个超时,但你”仅向我们展示onActivityResult方法 - onActivityResult方法不能为您的套接字连接创建超时 - 它必须是您创建连接的方式。请在您尝试创建连接的位置发布代码。 – Darwind
,以防止发布一大堆代码,如果你替换Intent myIntent = new Intent(com.blah.Blah.Ads); startActivity(myIntent);使用Socket套接字=新套接字(“ipaddr”,端口);你得到一个套接字超时,很明显,这将被包裹在try catch – user1661396
当你得到一个异常时,没有什么是显而易见的;-) 请修改代码,以便它反映你正在尝试做什么 - 这样代码也可以由他人经营并以此方式进行测试。 – Darwind