Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.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社交媒体应用程序中的同步问题 公共类HomePageActivity扩展了AppCompatActivity{ 公共字符串[]朋友; @凌驾 创建时受保护的void(Bundle savedInstanceState){ //活动功能 FriendWorker fw=新的FriendWorker(); fw.执行(…); } public void setFriends(字符串[]friends){ this.friends=Arrays.copyOf(friends,friends.length); } 公共类FriendWorker扩展异步任务{ @凌驾 受保护的字符串doInBackground(字符串…参数){ //获取并返回结果 } @凌驾 受保护的void onPostExecute(字符串结果){ setFriends(friendsArray); } } }_Java_Android_Android Asynctask - Fatal编程技术网

Java android社交媒体应用程序中的同步问题 公共类HomePageActivity扩展了AppCompatActivity{ 公共字符串[]朋友; @凌驾 创建时受保护的void(Bundle savedInstanceState){ //活动功能 FriendWorker fw=新的FriendWorker(); fw.执行(…); } public void setFriends(字符串[]friends){ this.friends=Arrays.copyOf(friends,friends.length); } 公共类FriendWorker扩展异步任务{ @凌驾 受保护的字符串doInBackground(字符串…参数){ //获取并返回结果 } @凌驾 受保护的void onPostExecute(字符串结果){ setFriends(friendsArray); } } }

Java android社交媒体应用程序中的同步问题 公共类HomePageActivity扩展了AppCompatActivity{ 公共字符串[]朋友; @凌驾 创建时受保护的void(Bundle savedInstanceState){ //活动功能 FriendWorker fw=新的FriendWorker(); fw.执行(…); } public void setFriends(字符串[]friends){ this.friends=Arrays.copyOf(friends,friends.length); } 公共类FriendWorker扩展异步任务{ @凌驾 受保护的字符串doInBackground(字符串…参数){ //获取并返回结果 } @凌驾 受保护的void onPostExecute(字符串结果){ setFriends(friendsArray); } } },java,android,android-asynctask,Java,Android,Android Asynctask,我知道我从doInBackground和onPostExecute中得到了正确的结果,并调用和设置了我在HomePageActivity中声明的friends数组,但是当它退出FriendWorker时,它不会保留它设置的值。我想这就是为什么它是一个同步问题。我在同步或异步方面没有太多经验,如果您能提供帮助,我将不胜感激。也许您应该使用打印语句、日志语句或调试器来找出结果和朋友包含的内容。据我所见,您没有检查HTTP请求的响应状态,因此您可能正在“解析”错误消息或其他内容。此外,您还没有解释这与

我知道我从doInBackground和onPostExecute中得到了正确的结果,并调用和设置了我在HomePageActivity中声明的friends数组,但是当它退出FriendWorker时,它不会保留它设置的值。我想这就是为什么它是一个同步问题。我在同步或异步方面没有太多经验,如果您能提供帮助,我将不胜感激。

也许您应该使用打印语句、日志语句或调试器来找出
结果
朋友
包含的内容。据我所见,您没有检查HTTP请求的响应状态,因此您可能正在“解析”错误消息或其他内容。此外,您还没有解释这与同步有关的原因。抱歉,我不够清楚,我认为这是一个同步问题,因为我认为asynctask创建了一个新线程来执行http连接,所以我认为问题在于,这和android应用程序的其余部分不是在同一个线程上执行的。我已经尝试过彻底的去气泡和打印语句,以确保结果符合要求。这可能是一个同步问题,但您没有提供足够的信息来进行正确的诊断。请为此创建一个MCVE并将其添加到您的问题中。我尝试用您要求的格式更新我上载的内容。希望这有助于了解到底发生了什么。先谢谢你。
public class HomePageActivity extends AppCompatActivity {
    public String[] friends;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        //Activity functions
        FriendWorker fw = new FriendWorker();
        fw.execute(...);
    }

    public void setFriends(String[] friends) {
        this.friends = Arrays.copyOf(friends, friends.length);
    }

    public class FriendWorker extends AsyncTask<String, Void, String> {

        @Override
        protected String doInBackground(String... params) {
            //get and return result
        }

        @Override
        protected void onPostExecute(String result) {
            setFriends(friendsArray);
        }

    }
}