0

嗯,我正在開發一個應用程序,經過多次嘗試後,我無法恢復它被另一個具有更高優先級或更高資源需求的應用程序銷燬,所以現在我選擇關閉它並重新開始整個活動,但我是面臨另一個問題。每當我重新啓動洞的事情,後來通過退出活動,我發現舊的活動,它仍然打開,所以重新啓動操作發生兩次,即使在第二次退出,我終於回到了Android家我仍然沒有得到如何繼續發生。 現在我正在關閉並在片段的onCreateView()方法結束時重新啓動應用程序。在這一點上做得好還是有更好的方法去做我想做的事情?重新啓動導航抽屜碎片活動的適當方法?

public void onSectionAttached(int number) { 
    try { 
     switch (number) { 
      case 1: 
       mTitle = getString(R.string.title_section1); 
       theFragment = 1; 
       if (isOnline()) { 
        if (bluClient.gotoHomePage(mainWebBrowser)) { 
         needloading = 6; 
         loadingdialog = ProgressDialog.show(this, "", "Attendere...", true, false); 
        } 
       } else { 
        Toast.makeText(this, "Rete non disponibile", Toast.LENGTH_LONG).show(); 
        return; 
       } 
       break; 
      case 2: 
       mTitle = getString(R.string.title_section2); 
       theFragment = 2; 
       if (isOnline()) { 
        if (bluClient.gotoUrlPage(mainWebBrowser)) { 
         needloading = 7; 
         if (bluClient.getCurr_page() == 3) 
          nlu = true; 
         loadingdialog = ProgressDialog.show(this, "", "Attendere...", true, false); 
        } else 
         needloading = -2; 
       } else { 
        Toast.makeText(this, "Rete non disponibile", Toast.LENGTH_LONG).show(); 
        return; 
       } 
       break; 
      case 3: 
       mTitle = getString(R.string.title_section3); 
       theFragment = 3; 
       if (isOnline()) { 
        if (bluClient.gotoPrefPage(mainWebBrowser)) { 
         needloading = 8; 
         loadingdialog = ProgressDialog.show(this, "", "Attendere...", true, false); 
        } else 
         needloading = -3; 
       } else { 
        Toast.makeText(this, "Rete non disponibile", Toast.LENGTH_LONG).show(); 
        return; 
       } 
       break; 
      case 4: 
       mTitle = getString(R.string.title_section4); 
       theFragment = 4; 
       break; 
     } 
    }catch (NullPointerException e){} 
} 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 

     final View rootView = inflater.inflate(returnFragment(), container, false); 
      TextView t = (TextView) rootView.findViewById(R.id.txtContatore); 
     RelativeLayout rel; 
     try { 
     switch (theFragment) { 
       case 1: 
        t.setText(formatBlurumPunti(bluClient.getPoints())); 
        final AutoCompleteTextView aCTV = (AutoCompleteTextView) rootView.findViewById(R.id.txtMotore); 
        aCTV.addTextChangedListener(new TextWatcher() { 
         @Override 
         public void onTextChanged(CharSequence s, int start, int before, int count) { 
          //here is your code 

         } 

         @Override 
         public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
          // TODO Auto-generated method stub 
         } 

         @Override 
         public void afterTextChanged(Editable s) { 
          if (s.toString() != "") { 
           //forSuggestions.stopLoading(); 
           //forSuggestions.loadUrl("http://suggestqueries.google.com/complete/search?output=toolbar&hl=it&q=" + s.toString()); 
           new setGoogleSuggestions(rootView).execute("http://suggestqueries.google.com/complete/search?output=toolbar&hl=it&q=" + s.toString()); 
          } 
         } 
        }); 
        ImageButton b; 
        for(short k=0;k<6;k++) { 
         switch (k) { 
          case 0: 
           t = (TextView) rootView.findViewById(R.id.txtFirstBonusengine); 
           b=(ImageButton)rootView.findViewById(R.id.mGoogle); 
           if(bluClient.getMotori().get(k).isSelected()) { 
            rel=(RelativeLayout)rootView.findViewById(R.id.gLayout); 
            rel.setBackgroundResource(R.drawable.button_selected); 
            if (bluClient.getMotori().get(k).getImage() != null) { 
             b.setImageBitmap(bluClient.getMotori().get(k).getImage()); 
            } 
           } 
           else{ 
            if (bluClient.getMotori().get(k).getImage() != null) { 
             b.setImageBitmap(toGrayscale(bluClient.getMotori().get(k).getImage())); 
            } 
           } 
           break; 
          case 1: 
           t = (TextView) rootView.findViewById(R.id.txtSecondBonusengine); 
           b=(ImageButton)rootView.findViewById(R.id.mYahoo); 
           if(bluClient.getMotori().get(k).isSelected()) { 
            rel=(RelativeLayout)rootView.findViewById(R.id.yLayout); 
            rel.setBackgroundResource(R.drawable.button_selected); 
            if (bluClient.getMotori().get(k).getImage() != null) { 
             b.setImageBitmap(bluClient.getMotori().get(k).getImage()); 
            } 
           } 
           else{ 
            if (bluClient.getMotori().get(k).getImage() != null) { 
             b.setImageBitmap(toGrayscale(bluClient.getMotori().get(k).getImage())); 
            } 
           } 
           break; 
          case 2: 
           t = (TextView) rootView.findViewById(R.id.txtThirdBonusengine); 
           b=(ImageButton)rootView.findViewById(R.id.mBing); 
           if(bluClient.getMotori().get(k).isSelected()) { 
            rel=(RelativeLayout)rootView.findViewById(R.id.bLayout); 
            rel.setBackgroundResource(R.drawable.button_selected); 
            if (bluClient.getMotori().get(k).getImage() != null) { 
             b.setImageBitmap(bluClient.getMotori().get(k).getImage()); 
            } 
           } 
           else{ 
            if (bluClient.getMotori().get(k).getImage() != null) { 
             b.setImageBitmap(toGrayscale(bluClient.getMotori().get(k).getImage())); 
            } 
           } 
           break; 
          case 3: 
           t = (TextView) rootView.findViewById(R.id.txtFourthBonusengine); 
           b=(ImageButton)rootView.findViewById(R.id.mYoutube); 
           if(bluClient.getMotori().get(k).isSelected()) { 
            rel=(RelativeLayout)rootView.findViewById(R.id.YoLayout); 
            rel.setBackgroundResource(R.drawable.button_selected); 
            if (bluClient.getMotori().get(k).getImage() != null) { 
             b.setImageBitmap(bluClient.getMotori().get(k).getImage()); 
            } 
           } 
           else{ 
            if (bluClient.getMotori().get(k).getImage() != null) { 
             b.setImageBitmap(toGrayscale(bluClient.getMotori().get(k).getImage())); 
            } 
           } 
           break; 
          case 4: 
           t = (TextView) rootView.findViewById(R.id.txtFifthBonusengine); 
           b=(ImageButton)rootView.findViewById(R.id.mVirgilio); 
           if(bluClient.getMotori().get(k).isSelected()) { 
            rel=(RelativeLayout)rootView.findViewById(R.id.vLayout); 
            rel.setBackgroundResource(R.drawable.button_selected); 
            if (bluClient.getMotori().get(k).getImage() != null) { 
             b.setImageBitmap(bluClient.getMotori().get(k).getImage()); 
            } 
           } 
           else{ 
            if (bluClient.getMotori().get(k).getImage() != null) { 
             b.setImageBitmap(toGrayscale(bluClient.getMotori().get(k).getImage())); 
            } 
           } 
           break; 
          case 5: 
           t = (TextView) rootView.findViewById(R.id.txtSixthBonusengine); 
           b=(ImageButton)rootView.findViewById(R.id.mPaginegialle); 
           if(bluClient.getMotori().get(k).isSelected()) { 
            rel=(RelativeLayout)rootView.findViewById(R.id.pLayout); 
            rel.setBackgroundResource(R.drawable.button_selected); 
            if (bluClient.getMotori().get(k).getImage() != null) { 
             b.setImageBitmap(bluClient.getMotori().get(k).getImage()); 
            } 
           } 
           else{ 
            if (bluClient.getMotori().get(k).getImage() != null) { 
             b.setImageBitmap(toGrayscale(bluClient.getMotori().get(k).getImage())); 
            } 
           } 
           break; 
         } 
         if(bluClient.getMotori().get(k).getValue()>1) 
         { 
          t.setText(Integer.toString(bluClient.getMotori().get(k).getValue())); 
          rel = (RelativeLayout) t.getParent(); 
          rel.setVisibility(View.VISIBLE); 
         } 
        } 
        break; 
       case 2: 
        t.setText(formatBlurumPunti(bluClient.getPoints())); 
        final AutoCompleteTextView aCTV2 = (AutoCompleteTextView) rootView.findViewById(R.id.txtMotore); 
        aCTV2.addTextChangedListener(new TextWatcher() { 
         @Override 
         public void onTextChanged(CharSequence s, int start, int before, int count) { 
          //here is your code 

         } 

         @Override 
         public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
          // TODO Auto-generated method stub 
         } 

         @Override 
         public void afterTextChanged(Editable s) { 
          if (s.toString() != "") { 
           //forSuggestions.stopLoading(); 
           //forSuggestions.loadUrl("http://suggestqueries.google.com/complete/search?output=toolbar&hl=it&q=" + s.toString()); 
           new setGoogleSuggestions(rootView).execute("http://suggestqueries.google.com/complete/search?output=toolbar&hl=it&q=" + s.toString());        } 
         } 
        }); 
        if(urlHistory=="") 
         urlHistory=theUserSessionManager.restoreUrlHistory(); 
        ArrayList<urlwidgStructure>lis; 
        lis=getUrlWidgStructureFromRestoredList(theUserSessionManager.restoreUrlHistoryToArrayList()); 
        for(short f=0;f<lis.size();f++) 
        { 
         setUrlVisitato2(rootView,inflater,lis.get(f)); 
        } 
        break; 
       case 3: 
        t.setText(formatBlurumPunti(bluClient.getPoints())); 
        if (needloading == -3) { 
         ArrayList<Blurum.preferitoBlurum> preferiti = bluClient.getPreferiti(); 
         if(preferiti.size()>0) { 
          for (short i = 0; i < preferiti.size(); i++) { 
           setPreferitiOfPage2(rootView, inflater, preferiti.get(i).nome, preferiti.get(i).stelle); 
          } 
          RelativeLayout re = (RelativeLayout) rootView.findViewById(R.id.relPrefPageContainer); 
          if (!preferiti.isEmpty()) { 
           re.setVisibility(View.VISIBLE); 
           ImageButton btnFoward = (ImageButton) re.findViewById(R.id.imgFoward), btnBack = (ImageButton) re.findViewById(R.id.imgBack); 
           if (preferiti.get(0).canGo('f')) 
            btnFoward.setVisibility(View.VISIBLE); 
           else 
            btnFoward.setVisibility(View.INVISIBLE); 
           if (preferiti.get(0).canGo('b')) 
            btnBack.setVisibility(View.VISIBLE); 
           else 
            btnBack.setVisibility(View.INVISIBLE); 
           t = (TextView) rootView.findViewById(R.id.txtPrefPageNum); 
           String d = Short.toString(preferiti.get(0).getParentPrefPageCurrentPageNum()); 
           t.setText(d); 
          } else 
           re.setVisibility(View.INVISIBLE); 
         } 
         else { 
          t=(TextView)rootView.findViewById(R.id.txtNopref); 
          t.setVisibility(View.VISIBLE); 
         } 
        } 
        break; 
       case 4: 
        WebView wvcatalogo=(WebView)rootView.findViewById(R.id.wvCatalogo); 
        wvcatalogo.getSettings().setJavaScriptEnabled(true); 
        wvcatalogo.getSettings().setDomStorageEnabled(true); 
        wvcatalogo.getSettings().setJavaScriptCanOpenWindowsAutomatically(false); 
        wvcatalogo.getSettings().setSupportMultipleWindows(true); 
        wvcatalogo.getSettings().setUserAgentString(mainWebBrowser.getSettings().getUserAgentString()); 
        wvcatalogo.loadUrl("url"); 
        wvcatalogo.setWebViewClient(new WebViewClient() { 
         @Override 
         public boolean shouldOverrideUrlLoading(WebView view, String url) { 
          super.shouldOverrideUrlLoading(view,url); 
          return false; 
         } 
        }); 
        break; 
      } 

     } 
     catch (NullPointerException e) 
     { 
      //Once my static class variable seem to be Null I know that the activity is trying 
      //to restore its self so I have to do this 

      Intent intent = new Intent(getActivity(), Accesso.class); 
      intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      startActivity(intent); 
      getActivity().finish(); 
     } 
     return rootView; 
    }  

對不起亂碼...

+0

我沒有得到你想要實現的。你可以發佈一些代碼嗎? – natario

+0

在這裏,我做的這個視頻截圖可以幫助你更好地理解它[鏈接](https://www.youtube.com/watch?v=v-Mkz00cl0I)..我還將用一些代碼編輯mi問題。 –

+0

對不起,但我不明白你要做什麼。什麼變量是空的,它來自哪裏?這聽起來像你試圖做的任何事情都應該以一種完全不同的方式處理,而不是重新開始一個活動 – tyczj

回答

0

我結束了展示,告訴應用程序需要重新啓動用戶的catch子句在DialogFragment並通過按下肯定按鈕我執行相同的代碼,是在以前的條款...我不明白爲什麼以前的解決方案給了我這種奇怪的行爲,因爲現在我已經添加了一個對話框,它的應用程序正在重新啓動,因爲想要..