【发布时间】:2016-01-10 16:51:31
【问题描述】:
下面是我做的一个小实验,我在活动的 onResume() 部分将 SurfaceTextureListener 附加到 TextureView。
重新开始:表面纹理可用(“onSurfaceTextureAvailable”)
-
方向改变:正如我所料,表面纹理被破坏(“onSurfaceTextureDestroyed”),然后表面纹理可用(“onSurfaceTextureAvailable”)。
现在让我感到惊讶的是:
- 在任务切换然后恢复:表面纹理没有被破坏(没有“onSurfaceTextureDestroyed”)并且表面纹理不可用(没有“onSurfaceTextureAvailable”)
在这些条件下,我能保证旧的 SurfaceTexture 仍然有效吗?如何确保我真正知道我的 SurfaceTexture 何时可用?为什么方向改变与任务切换不同,我应该怎么知道?
public class MainActivity extends AppCompatActivity {
private final String TAG = "MainActivity";
TextureView mTextureView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextureView = (TextureView) findViewById(R.id.textureView);
}
@Override
public void onResume() {
super.onResume();
mTextureView.setSurfaceTextureListener(new TextureView.SurfaceTextureListener() {
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
Log.d(TAG, "onSurfaceTextureAvailable");
}
@Override
public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) {
Log.d(TAG, "onSurfaceTextureSizeChanged");
}
@Override
public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) {
Log.d(TAG, "onSurfaceTextureDestroyed");
return false;
}
@Override
public void onSurfaceTextureUpdated(SurfaceTexture surface) {
}
});
}
}
【问题讨论】:
标签: android