我有一个活动,在启动时(onCreate或onStart)需要操纵一些视图,然后可能立即启动另一个活动(一个插页式广告在其自己的活动中)。
订单/并发似乎存在问题:广告活动已打开,然后在插页式广告活动的基础上绘制上一个活动中的操纵视图R.id.productlist_filterbar。
(简体)代码:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.productlist);
// Do some init stuff ..
// Manipulate the GUI
findViewById(R.id.productlist_filterbar).setVisibility(View.VISIBLE);
// If executed, then a new intent is fired in here to open the interstitial ad
if (..we have an ad..) {
Intent i = new Intent(this, AdViewActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(i);
overridePendingTransition(R.anim.fadein, 0);
}
}
当还有未决的GUI修改时,当我调用startActivity()时会发生什么?
而且,这个案例的最佳解决方案是什么?
感谢您的帮助!
答案 0 :(得分:0)
我会在onAttachedToWindow()
回调中设置一个标记,然后在onWindowFocusChanged()
中检查此标记是否已设置,然后启动广告活动并重置标记。
void onAttachedToWindow() {
mFlag = true;
}
void onWindowFocusChanged(boolean hasFocus) {
if (hasFocus && mFlag) {
// start ad activity.
mFlag = false;
}
}