第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Java 代碼在逐步調(diào)試模式下運(yùn)行良好,而不是在默認(rèn)運(yùn)行模式下

Java 代碼在逐步調(diào)試模式下運(yùn)行良好,而不是在默認(rèn)運(yùn)行模式下

一只萌萌小番薯 2021-08-19 17:36:02
我在一個(gè) Andriod 應(yīng)用程序上工作。我從數(shù)據(jù)庫中讀取了一些字符串并在 ListView 中輸出它們。我的問題是,如果我在逐步模式下,來自 DB 的返回字符串運(yùn)行良好。如果我處于運(yùn)行模式,或者即使我將斷點(diǎn)放在收到結(jié)果的行之后。字符串變量將為空。 BackgroundWorker backgroundWorker = new BackgroundWorker( this); backgroundWorker.execute("Names"); res = backgroundWorker.FinalRes; res = res.replace("[",""); res = res.replace("]",""); res = res.replace("\"",""); ParsedStringsResult = PasrString(res); ArrayList<ListNames> NameSs= new ArrayList<ListNames>(); int size = ParsedStringsResult.length; for ( int i=0; i<size;i++ ) NameSs.add(new ListNames(ParsedStringsResult[i]));如果我把斷點(diǎn)放在 res=backgroundWorker.FinalRes;它運(yùn)行良好并顯示值如果我把它放在這一行之后甚至在默認(rèn)運(yùn)行模式下, res 將為空!為什么會(huì)發(fā)生這種情況,我該如何解決?我的背景課public class BackgroundWorker extends AsyncTask<String , Void, String> {Context context;public String FinalRes="";AlertDialog alertDialog;BackgroundWorker(Context ctx){    context = ctx;}@Overrideprotected String doInBackground(String... params) {    String type = params[0];    if (type == "Names") {        String url_login = "http://192.168.1.2/MyApp/getNames.php";        try {            URL url = new URL(url_login);            HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();            httpURLConnection.setRequestMethod("POST");            httpURLConnection.setDoOutput(true);            httpURLConnection.setDoInput(true);          /*  OutputStream outputStream = httpURLConnection.getOutputStream();            BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));            String post_data = URLEncoder.encode("name", "UTF-8") + "=" + URLEncoder.encode(name, "UTF-8");// +"&"+ w nkml tany            bufferedWriter.write(post_data);            bufferedWriter.flush();            bufferedWriter.close();            outputStream.close();*/        } 
查看完整描述

2 回答

?
慕俠2389804

TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個(gè)贊

您在啟動(dòng)后臺(tái)工作程序和設(shè)置其最終結(jié)果之間存在競爭條件。

通過設(shè)置斷點(diǎn),您只是在等待足夠長的時(shí)間來完成該過程。

您只需要FinalRes通過某種方式等待設(shè)置即可。如果沒有看到你的BackgroundWorker類的代碼,就不可能說如何最好地做到這一點(diǎn)。


查看完整回答
反對(duì) 回復(fù) 2021-08-19
?
炎炎設(shè)計(jì)

TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊

像這樣嘗試:


BackgroundWorker backgroundWorker = new BackgroundWorker( this);

backgroundWorker.execute("Names");

while(backgroundWorker.getStatus() != AsyncTask.Status.FINISHED) // While the status is different from "FINISHED" you wait for the task to finished

    Thread.sleep(100)

res = backgroundWorker.FinalRes;


查看完整回答
反對(duì) 回復(fù) 2021-08-19
  • 2 回答
  • 0 關(guān)注
  • 135 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)