如何在android中以可运行线程显示对话框?
我使用runnable thread的应用程序超时函数。这个超时函数在单独的类中 我在活动A中调用此函数,但我在活动B中意味着它显示错误,如坏令牌异常 超时功能类如何在android中以可运行线程显示对话框?,android,android-dialog,Android,Android Dialog,我使用runnable thread的应用程序超时函数。这个超时函数在单独的类中 我在活动A中调用此函数,但我在活动B中意味着它显示错误,如坏令牌异常 超时功能类 public class Timeout_function{ private Handler mHandler; Activity activity; String dialog_msgs,Avaliable_quantity; boolean isShown = false,Connection; Internet_conne
public class Timeout_function{
private Handler mHandler;
Activity activity;
String dialog_msgs,Avaliable_quantity;
boolean isShown = false,Connection;
Internet_connection_checking int_chk;
Json_response json_res_class = new Json_response();
Dialog dialog;
DecimalFormat df;
double vat_2;
double packing_charge_7;
double Grand_total;
double sub_total = 0, jk;
int quantity;
static JSONObject json = new JSONObject();
static JSONArray jsonarray;
EditText ettot,vat_2per,packing_charge_7per,Grand_totall,Grand_total_ftr;
TextView order_count;
public Timeout_function(Activity activity,Handler mHandler) {
super();
this.activity = activity;
this.mHandler = mHandler;
}
Runnable first_Task = new Runnable() {
public void run() {
onStart_extend();
}
};
Runnable second_Task = new Runnable() {
public void run() {
dialog_msgs = "First";
dialogs();
mHandler.removeCallbacks(first_Task);
onStop();
}
};
public void onStart() {
mHandler.postDelayed(first_Task, 1 * 30 * 1000);
}
public void onStart_extend(){
mHandler.postDelayed(second_Task, 1 * 30 * 1000);
}
public void onStart_user_extend(){
mHandler.postDelayed(second_Task, 1 * 30 * 1000);
}
//Error Messages
public void dialogs(){
Typeface font = Typeface.createFromAsset(activity.getAssets(), "fonts/CALIBRI.TTF");;
dialog = new Dialog(activity);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));
dialog.setContentView(R.layout.dialogs);
dialog.setCancelable(false);
isShown=true;
TextView tv_msg = (TextView)dialog.findViewById(R.id.dialog_texts);
tv_msg.setTypeface(font);
tv_msg.setText(""+dialog_msgs);
Button btn_ok=(Button)dialog.findViewById(R.id.btn_dialogs_ok);
btn_ok.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
dialog.dismiss();
}
});
dialog.show();
}
}
有人能帮我解决这个问题吗
我的日志cat错误:
05-18 13:20:14.983: E/AndroidRuntime(7672): android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@42f2d668 is not valid; is your activity running?
05-18 13:20:14.983: E/AndroidRuntime(7672): at android.view.ViewRootImpl.setView(ViewRootImpl.java:692)
05-18 13:20:14.983: E/AndroidRuntime(7672): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:345)
05-18 13:20:14.983: E/AndroidRuntime(7672): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:224)
05-18 13:20:14.983: E/AndroidRuntime(7672): at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:149)
05-18 13:20:14.983: E/AndroidRuntime(7672): at android.view.Window$LocalWindowManager.addView(Window.java:556)
05-18 13:20:14.983: E/AndroidRuntime(7672): at android.app.Dialog.show(Dialog.java:277)
05-18 13:20:14.983: E/AndroidRuntime(7672): at tab.FA.V3.Timeout_function.dialogs(Timeout_function.java:263)
05-18 13:20:14.983: E/AndroidRuntime(7672): at tab.FA.V3.Timeout_function$2$1.run(Timeout_function.java:80)
05-18 13:20:14.983: E/AndroidRuntime(7672): at android.app.Activity.runOnUiThread(Activity.java:4741)
05-18 13:20:14.983: E/AndroidRuntime(7672): at tab.FA.V3.Timeout_function$2.run(Timeout_function.java:75)
05-18 13:20:14.983: E/AndroidRuntime(7672): at android.os.Handler.handleCallback(Handler.java:615)
05-18 13:20:14.983: E/AndroidRuntime(7672): at android.os.Handler.dispatchMessage(Handler.java:92)
05-18 13:20:14.983: E/AndroidRuntime(7672): at android.os.Looper.loop(Looper.java:137)
05-18 13:20:14.983: E/AndroidRuntime(7672): at android.app.ActivityThread.main(ActivityThread.java:4895)
05-18 13:20:14.983: E/AndroidRuntime(7672): at java.lang.reflect.Method.invokeNative(Native Method)
05-18 13:20:14.983: E/AndroidRuntime(7672): at java.lang.reflect.Method.invoke(Method.java:511)
05-18 13:20:14.983: E/AndroidRuntime(7672): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:994)
05-18 13:20:14.983: E/AndroidRuntime(7672): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:761)
05-18 13:20:14.983: E/AndroidRuntime(7672): at dalvik.system.NativeStart.main(Native Method)
用于从非ui线程显示对话框。按如下方式操作:
Runnable second_Task = new Runnable() {
public void run() {
activity.runOnUiThread(new Runnable() {
public void run() {
dialog_msgs = "First";
//show dialog here..
dialogs();
}
});
}
};
当运行的
活动
为B(a暂停)时,不能在活动
a中显示对话框。应该在活动
B@Yugesh中创建该对话框:如果您遇到错误,请添加日志,询问如何在活动B中创建该对话框