Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我的Android应用程序在尝试连接套接字时会阻塞?_Java_Android_Email_Imap_Block - Fatal编程技术网

Java 为什么我的Android应用程序在尝试连接套接字时会阻塞?

Java 为什么我的Android应用程序在尝试连接套接字时会阻塞?,java,android,email,imap,block,Java,Android,Email,Imap,Block,我有一个非常简单的代码,试图在Android上使用JavaMail打开套接字,如下所示: public boolean connect() { try { store_ = session_.getStore("imap"); store_.connect(email_.host, email_.user, email_.pass); folder_ = store_.getDefaultFolder(); folder_

我有一个非常简单的代码,试图在Android上使用JavaMail打开套接字,如下所示:

public boolean connect() {
    try {
        store_ = session_.getStore("imap");
        store_.connect(email_.host, email_.user, email_.pass);
        folder_ = store_.getDefaultFolder();
        folder_ = folder_.getFolder("inbox");
        folder_.open(Folder.READ_ONLY);
    }
    catch(Exception e) {
        disconnect();
        return false;
    }

    return true;
}

public void disconnect() {
    if (folder_ != null) {
        try {
            folder_.close(false);
        }
        catch(Exception e) {
        }
        folder_ = null;
    }

    if (store_ != null) {
        try {
            store_.close();
        }
        catch(Exception e) {
        }
        store_ = null;
    }
}
它适用于不需要SSL的IMAP服务器。除此之外,应用程序只是阻塞。 不管你怎么努力。有什么想法吗?
请注意,当我提到“imap”而不是“imap”时,它当然可以工作,但我不希望我的应用程序在任何情况下都会阻塞。

这是在UI线程上完成的吗?如果是,您应该将其卸载到类似ASyncTask或服务的程序中,因为connect()(socket.connect())方法将被阻止。

我建议您先阅读这篇文章,并检查您是在主UI线程还是在后台线程上处理套接字连接。可在此链接上找到示例: