Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android活动强制关闭问题_Android_Progressdialog_Logcat - Fatal编程技术网

Android活动强制关闭问题

Android活动强制关闭问题,android,progressdialog,logcat,Android,Progressdialog,Logcat,在此处输入代码我正试图在我的Android应用程序中设置一个进度对话框,但遇到了一些问题。我是Android新手,因此我将遵循本教程: 当我在手机上测试我的应用程序时,它只会强制关闭。 有人能帮忙吗? 下面是我的.Java活动: public class XXXXXActivity extends Activity { private ProgressDialog progressDialog; /** Called when the activity is first created. *

在此处输入代码
我正试图在我的Android应用程序中设置一个进度对话框,但遇到了一些问题。我是Android新手,因此我将遵循本教程:

当我在手机上测试我的应用程序时,它只会强制关闭。 有人能帮忙吗? 下面是我的.Java活动:

public class XXXXXActivity extends Activity {
private ProgressDialog progressDialog;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    WebView myWebView=(WebView)findViewById(R.id.webview);
    myWebView.addJavascriptInterface(new JavaScriptInterface(this),"Android");
    WebSettings websettings =
            myWebView.getSettings();
    websettings.setJavaScriptEnabled(true);
    myWebView.setWebViewClient(new MyWebViewClient());
    myWebView.loadUrl("http://XXXXX.com");
}

private void runDialog(final int seconds)
{
    progressDialog = ProgressDialog.show(this, "Please wait...", "Loading...");
    new Thread(new Runnable(){
        public void run(){
           try {
                        Thread.sleep(seconds * 1000);
                progressDialog.dismiss();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }).start();
}
public class JavaScriptInterface {
    Context mContext;
    /** Instantiate the interface and set the context*/
    JavaScriptInterface(Context c) {
        mContext = c;
    }
    /** Show a toast from the web page*/
    public void showToast(String toast) {
        Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
    }
}
private class MyWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading (WebView view, String url) {
        view.loadUrl(url); 
        if
        (Uri.parse(url).getHost().equals("XXXXX.com")) {
            // This is my web site, so do not override; let my WebView load the page
            return false;
        }
        // Otherwise, the link is not for a page on my site, so launch another Activity that handles URLs
        Intent intent=new
                Intent (Intent.ACTION_VIEW,Uri.parse(url));
        startActivity(intent);
        return true;
    }
}
日志:

[2012-04-13 19:44:55 - XXXXX] ------------------------------
[2012-04-13 19:44:55 - XXXXX] Android Launch!
[2012-04-13 19:44:55 - XXXXX] adb is running normally.
[2012-04-13 19:44:55 - XXXXX] No Launcher activity found!
[2012-04-13 19:44:55 - XXXXX] The launch will only sync the application package   on the device!
[2012-04-13 19:44:55 - XXXXX] Performing sync
[2012-04-13 19:44:55 - XXXXX] Automatic Target Mode: Preferred AVD 'MY-PHONE' is not available. Launching new emulator.
[2012-04-13 19:44:55 - XXXXX] Launching a new emulator with Virtual Device 'MY-PHONE'
[2012-04-13 19:45:08 - Emulator] emulator: WARNING: Unable to create sensors port: Unknown error
[2012-04-13 19:45:08 - XXXXX] New emulator found: emulator-5554
[2012-04-13 19:45:08 - XXXXX] Waiting for HOME ('android.process.acore') to be launched...
[2012-04-13 19:46:05 - XXXXX] emulator-5554 disconnected! Cancelling 'sync'!

我看到一个问题:您在非gui线程中关闭对话框:

new Thread(new Runnable(){
        public void run(){
           try {
                        Thread.sleep(seconds * 1000);
                progressDialog.dismiss();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }).start();

这段代码非常奇怪,我认为你应该重写逻辑。

请发布你的logcat输出。这不应该是问题,因为他没有在代码中的任何地方调用runDialog函数。@AlexKlimashevsky你能找到一个链接或什么东西来重写代码吗?正如我在问题中所说,我是Android新手。@SaneeshCS我需要在代码中调用runDialog函数吗?正如我在问题中所说,我对安卓系统是新手。此外,这是所有的教程告诉我这样做,我想知道这家伙是否遗漏了什么?你可以发布你的logcat输出。如果你想显示progressbar,你必须调用runDialog函数。在这样做之前,找出你为什么要接近原力。希望您已在清单中声明此活动。