gpt4 book ai didi

Android,AsyncTask,检查状态?

转载 作者:IT王子 更新时间:2023-10-29 00:04:30 27 4
gpt4 key购买 nike

这是我的代码:

在 onCreate 中:

 new LoadMusicInBackground().execute();

然后在我的主课结束时,我有这段代码

/** Helper class to load all the music in the background. */
class LoadMusicInBackground extends AsyncTask<Void, String, Void> {
@Override
protected Void doInBackground(Void... unused) {

soundPool = new SoundPool(5, AudioManager.STREAM_MUSIC, 100);
soundPoolMap = new HashMap<Integer, Integer>();

soundPoolMap.put(A1,
soundPool.load(GameScreen_bugfix.this, R.raw.a, 1));
soundPoolMap.put(A3,
soundPool.load(GameScreen_bugfix.this, R.raw.b, 1));
soundPoolMap.put(A5,
soundPool.load(GameScreen_bugfix.this, R.raw.c_s, 1));
soundPoolMap.put(A6,
soundPool.load(GameScreen_bugfix.this, R.raw.d, 1));
soundPoolMap.put(A8,
soundPool.load(GameScreen_bugfix.this, R.raw.e, 1));
soundPoolMap.put(A10,
soundPool.load(GameScreen_bugfix.this, R.raw.f_s, 1));
soundPoolMap.put(A12,
soundPool.load(GameScreen_bugfix.this, R.raw.g_s, 1));
soundPoolMap.put(wrong,
soundPool.load(GameScreen_bugfix.this, R.raw.wrong2, 1));

publishProgress("");
Log.v("SOUNDPOOL", "" + soundPoolMap);
return (null);
}

@Override
protected void onProgressUpdate(String... item) {
// text1.setText(item[0]);
}

@Override
protected void onPostExecute(Void unused) {
//Toast.makeText(GameScreen_bugfix.this, "music loaded!", Toast.LENGTH_SHORT).show();
}
}

如果音乐没有加载我得到一个空指针异常,查看文档我看到有一个 getStatus() 但我尝试过这样的事情:

music_load_status=LoadMusicInBackground.getStatus()

这是行不通的:(如何查看后台任务是否完成以及音乐是否已加载?

谢谢!
瑞恩

最佳答案

getStatus() 检查 AsyncTask 是否处于挂起、运行或完成状态。

LoadMusicInBackground lmib = new LoadMusicInBackground();

if(lmib.getStatus() == AsyncTask.Status.PENDING){
// My AsyncTask has not started yet
}

if(lmib.getStatus() == AsyncTask.Status.RUNNING){
// My AsyncTask is currently doing work in doInBackground()
}

if(lmib.getStatus() == AsyncTask.Status.FINISHED){
// My AsyncTask is done and onPostExecute was called
}

如果您想检查您的操作是否真的成功(即音乐是否已成功加载),那么您需要想出自己的方法来确定这一点。 getStatus() 只能确定AsyncTask 中实际线程的状态。

关于Android,AsyncTask,检查状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7588584/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com