0

我通过调用具有透明主题的意图从应用程序上下文中弹出一个对话框。(类似于此处提到的内容。)弹出是只读的。问题是当显示弹出时有一个当前活动在后台进行。在显示弹出窗口时,我也需要能够访问后台活动。我添加了以下两行,但我仍然无法控制基础活动:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);

我究竟做错了什么?

4

1 回答 1

0

你必须在一个线程中打开对话框,你没有解释太多你想在后台做什么,但是为了让一个线程这样做:创建一个名为:thread1的新类,然后在那里写下这些:

public class thread1 extends Thread {
MainActivity activity;
public  thread1(MainActivity m){
activity=m;
ProgressDialog pd;
//other code maybe for specification
pd=ProgressDialog.show(activity,"", "wait for background activity");
}
@Override
public void run(){
         //you code working in background here like:
         activity.sucess=0;
         while (activity.sucess==0){
        android.os.SystemClock.sleep(300);  
    }
    pd.dismiss();
}
}

每当你想打开这个 pb 你应该写这个,

thread1 t1=new thread1(this);
t1.start();

当你的工作完成并且你想关闭 pb 时,你必须设置 sucess=1 然后线程将被杀死。

于 2012-12-11T15:23:54.053 回答