0
我有下面的代碼:的Android lockCanvas()返回帆布一臺設備上,但在另一個返回null
public void messageReceived(String message) {
...
...
synchronized (getHolder()) {
if(isCreated) {
Canvas canvas = getHolder().lockCanvas();
if (canvas != null) {
draw(canvas);
getHolder().unlockCanvasAndPost(canvas);
}
}
}
...
...
}
問題是這樣的:在我的HTC Desire(安卓4.1.2)的方法getHolder().lockCanvas()
回報然後我用畫布在上面畫東西。但在我的朋友智能手機(Android 4.2.2),它返回null,所以我不能借鑑它。有任何想法嗎?
編輯 我已經改變了代碼一點點只是要確定:
synchronized (getHolder()) {
if(isCreated && !isLocked) {
Canvas canvas = getHolder().lockCanvas();
isLocked = true;
if (canvas != null) {
draw(canvas);
getHolder().unlockCanvasAndPost(canvas);
isLocked = false;
}
}
}
isCreated和isLocked是公共靜態布爾值。