簡體   English   中英

開始已經運行的活動

[英]Starting activity which is already running

我想刪除活動的一個按鈕,但是當我啟動它時,就像這樣:

Intent inte = new Intent(PasswordConfirmationActivity.this, IndexActivity.class); UserAuthentication UA = new UserAuthentication(); control = UA.UserControl(EdtText.getText().toString()); inte.putExtra("confirmation", control); startActivity(inte); finish();

它給了我錯誤。
當另一個活動正在運行時,該活動也在運行。

這就是我刪除按鈕的代碼:

Boolean loginControl = getIntent().getBooleanExtra("confirmation",false);
    if (loginControl == true) {
        ViewGroup layout = (ViewGroup) ButtonClick2.getParent();
        if(null!=layout) 
        layout.removeView(ButtonClick2);
    }

這是loccat:

08-13 15:37:13.676: E/WindowManager(17128): Activity tr.com.turkcell.shmobile.MainActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@421bfcb0 that was originally added here
08-13 15:37:13.676: E/WindowManager(17128): android.view.WindowLeaked: Activity tr.com.turkcell.shmobile.MainActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@421bfcb0 that was originally added here
08-13 15:37:13.676: E/WindowManager(17128):     at android.view.ViewRootImpl.<init>(ViewRootImpl.java:374)
08-13 15:37:13.676: E/WindowManager(17128):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:292)
08-13 15:37:13.676: E/WindowManager(17128):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:224)
08-13 15:37:13.676: E/WindowManager(17128):     at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:149)
08-13 15:37:13.676: E/WindowManager(17128):     at android.view.Window$LocalWindowManager.addView(Window.java:549)
08-13 15:37:13.676: E/WindowManager(17128):     at android.app.Dialog.show(Dialog.java:277)
08-13 15:37:13.676: E/WindowManager(17128):     at android.app.ProgressDialog.show(ProgressDialog.java:116)
08-13 15:37:13.676: E/WindowManager(17128):     at android.app.ProgressDialog.show(ProgressDialog.java:99)
08-13 15:37:13.676: E/WindowManager(17128):     at android.app.ProgressDialog.show(ProgressDialog.java:94)
08-13 15:37:13.676: E/WindowManager(17128):     at tr.com.turkcell.shmobile.MainActivity$GetProduts.onPreExecute(MainActivity.java:188)
08-13 15:37:13.676: E/WindowManager(17128):     at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:586)
08-13 15:37:13.676: E/WindowManager(17128):     at android.os.AsyncTask.execute(AsyncTask.java:534)
08-13 15:37:13.676: E/WindowManager(17128):     at tr.com.turkcell.shmobile.MainActivity$1$1.run(MainActivity.java:59)
08-13 15:37:13.676: E/WindowManager(17128):     at android.app.Activity.runOnUiThread(Activity.java:4591)
08-13 15:37:13.676: E/WindowManager(17128):     at tr.com.turkcell.shmobile.MainActivity$1.onClick(MainActivity.java:56)
08-13 15:37:13.676: E/WindowManager(17128):     at android.view.View.performClick(View.java:4084)
08-13 15:37:13.676: E/WindowManager(17128):     at android.view.View$PerformClick.run(View.java:16966)
08-13 15:37:13.676: E/WindowManager(17128):     at android.os.Handler.handleCallback(Handler.java:615)
08-13 15:37:13.676: E/WindowManager(17128):     at android.os.Handler.dispatchMessage(Handler.java:92)
08-13 15:37:13.676: E/WindowManager(17128):     at android.os.Looper.loop(Looper.java:137)
08-13 15:37:13.676: E/WindowManager(17128):     at android.app.ActivityThread.main(ActivityThread.java:4754)
08-13 15:37:13.676: E/WindowManager(17128):     at java.lang.reflect.Method.invokeNative(Native Method)
08-13 15:37:13.676: E/WindowManager(17128):     at java.lang.reflect.Method.invoke(Method.java:511)
08-13 15:37:13.676: E/WindowManager(17128):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
08-13 15:37:13.676: E/WindowManager(17128):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
08-13 15:37:13.676: E/WindowManager(17128):     at dalvik.system.NativeStart.main(Native Method)
08-13 15:37:15.266: D/ActivityThread(17128): handleResumeActivity now pri:0
08-13 15:37:15.266: D/ActivityThread(17128): handleResumeActivity set pri:0
08-13 15:37:17.086: D/AndroidRuntime(17128): Shutting down VM
08-13 15:37:17.086: W/dalvikvm(17128): threadid=1: thread exiting with uncaught exception (group=0x41b6a318)
08-13 15:37:17.086: E/AndroidRuntime(17128): FATAL EXCEPTION: main
08-13 15:37:17.086: E/AndroidRuntime(17128): java.lang.RuntimeException: Unable to start activity ComponentInfo{tr.com.turkcell.shmobile/tr.com.turkcell.shmobile.IndexActivity}: java.lang.NullPointerException
08-13 15:37:17.086: E/AndroidRuntime(17128):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
08-13 15:37:17.086: E/AndroidRuntime(17128):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
08-13 15:37:17.086: E/AndroidRuntime(17128):    at android.app.ActivityThread.access$600(ActivityThread.java:130)
08-13 15:37:17.086: E/AndroidRuntime(17128):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
08-13 15:37:17.086: E/AndroidRuntime(17128):    at android.os.Handler.dispatchMessage(Handler.java:99)
08-13 15:37:17.086: E/AndroidRuntime(17128):    at android.os.Looper.loop(Looper.java:137)
08-13 15:37:17.086: E/AndroidRuntime(17128):    at android.app.ActivityThread.main(ActivityThread.java:4754)
08-13 15:37:17.086: E/AndroidRuntime(17128):    at java.lang.reflect.Method.invokeNative(Native Method)
08-13 15:37:17.086: E/AndroidRuntime(17128):    at java.lang.reflect.Method.invoke(Method.java:511)
08-13 15:37:17.086: E/AndroidRuntime(17128):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
08-13 15:37:17.086: E/AndroidRuntime(17128):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
08-13 15:37:17.086: E/AndroidRuntime(17128):    at dalvik.system.NativeStart.main(Native Method)
08-13 15:37:17.086: E/AndroidRuntime(17128): Caused by: java.lang.NullPointerException
08-13 15:37:17.086: E/AndroidRuntime(17128):    at tr.com.turkcell.shmobile.IndexActivity.onCreate(IndexActivity.java:75)
08-13 15:37:17.086: E/AndroidRuntime(17128):    at android.app.Activity.performCreate(Activity.java:5008)
08-13 15:37:17.086: E/AndroidRuntime(17128):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
08-13 15:37:17.086: E/AndroidRuntime(17128):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)

使用view.setVisibility(View.Gone); 它將從屏幕上刪除按鈕。

    e.g:

    Boolean loginControl = getIntent().getBooleanExtra("confirmation",false);
    if (loginControl) {
        ViewGroup layout = (ViewGroup) ButtonClick2.getParent();
        toBeRemovedButton.setVisibility(View.Gone);
    }

要重新啟動當前活動,您只需照常使用intent完成並重新創建它即可。 但是請記住,重新創建后,將再次調用oncreate(),並且刷新布局,包括可能已刪除的視圖。

完成活動后,可以使用額外的捆綁包將其繪制為新按鈕,以隱藏按鈕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM