Tôi có một hoạt động đơn giản chỉ hiển thị hai nút và tôi muốn tải một hoạt động khác ngay khi hoạt động đó tải xong.bắt đầu một hoạt động mới trong onCreate chỉ hoạt động với độ trễ
@Override
public void onCreate(Bundle savedInstanceState) {
dbg("starting on create");
super.onCreate(savedInstanceState);
dbg("stting content view");
setContentView(R.layout.main);
createDrPopup();
}
private void createDrPopup(){
dbg("created new activity");
startActivityForResult(new Intent(this, DrPopup.class),
DR_POPUP_ACTIVITY_ID);
}
Tôi không gặp bất kỳ lỗi nào với mã này, nhưng hoạt động mới không tải đúng cách. Bằng cách này tôi chỉ nhận được một màn hình blanc.
Nhưng nếu tôi gọi hoạt động mới với độ trễ thì mọi thứ sẽ hoạt động tốt.
@Override
public void onCreate(Bundle savedInstanceState) {
dbg("starting on create");
super.onCreate(savedInstanceState);
dbg("stting content view");
setContentView(R.layout.main);
Thread splashTread = new Thread() {
@Override
public void run() {
try {
sleep(500);
} catch(InterruptedException e) {
} finally {
createDrPopup();
}
}
};
splashTread.start();
}
private void createDrPopup(){
dbg("created new activity");
startActivityForResult(new Intent(this, DrPopup.class),
DR_POPUP_ACTIVITY_ID);
}
câu hỏi của tôi là thế này:
Có cách nào tốt hơn để chờ đợi cho một hoạt động để hoàn tất. Tôi thậm chí không thể chắc chắn rằng 500ms sẽ là đủ mỗi lần.
Cảm ơn bạn đã đề xuất bất kỳ.
yêu cầu mã cho dr_popup (đây là đơn giản như nó được)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
dbg("Created new activity");
setContentView(R.layout.dr_webview);
dbg("web view created");
}
và cả hai bố trí
chính
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<Button android:text="Button" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
<Spinner android:layout_height="wrap_content" android:layout_weight="1" android:layout_width="wrap_content" android:id="@+id/spinner1"></Spinner>
</LinearLayout>
sổ popup
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/dr_popup_webview_layout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">
<WebView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/dr_popup_webview" android:layout_width="fill_parent" android:layout_height="100dip"/>
<LinearLayout android:id="@+id/frameLayout1" android:layout_height="100dip" android:layout_width="fill_parent" android:orientation="horizontal">
<EditText android:id="@+id/dr_submit_text" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_weight="4">
<requestFocus></requestFocus>
</EditText>
<Button android:text="Button" android:id="@+id/dr_submit_button" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_weight="1"></Button>
</LinearLayout>
</LinearLayout>
chỉnh sửa: các vấn đề se ems được gây ra bởi sự biểu hiện dòng @android: phong cách/Theme.Dialog
<activity android:theme="@android:style/Theme.Dialog"
android:name=".DrPopup"
android:label="@string/dr_popup">
</activity>
Nếu tôi loại bỏ, mọi thứ dường như để làm việc, nhưng tôi muốn một giải pháp mà có thể làm việc ngay cả với dòng đó.
và ảnh hiển thị sự cố. http://i.imgur.com/ZOcyw.png
Xin chào, bạn có thể cung cấp mã cho DrPopup không. – Deva
Vâng, tôi không biết chắc chắn, nhưng có lẽ ActivityManager không thể xử lý bắt đầu một Hoạt động mới khi một Activity khác vẫn còn trong phương thức vòng đời onCreate(). Bộ đếm thời gian cho phép đủ thời gian để onCreate() hoàn tất ... –
Tôi cũng đã thêm mã và các tệp xml nữa và tôi nên thêm Tôi đang làm việc trên android 1.5 – zidarsk8