2013-09-27 112 views
-2

我想知道如何實現一個線程在這個類,使其從ANR的問題,安全(應用程序無響應)在我的課程中實現線程?

public class myClass { 


    private static String LOG_TAG = Root.class.getName(); 

    public boolean isDeviceRooted() throws IOException { 

     if (checkRootMethod1()){return true;} 
     if (checkRootMethod2()){return true;} 
     if (checkRootMethod3()){return true;} 
     return false; 

    } 
    public boolean checkRootMethod1(){ 
     String buildTags = android.os.Build.TAGS; 

     if (buildTags != null && buildTags.contains("test-keys")) { 
      return true; 
     } 
     return false; 
    } 

    public boolean checkRootMethod2(){ 
     try { 
      File file = new File("/system/app/Superuser.apk"); 
      if (file.exists()) { 
       return true; 
      } 
      else { 

       return false; 
      } 
     } catch (Exception e) { 

     } 

     return false; 
    } 

    public boolean checkRootMethod3() { 
     if (new ExecShell().executeCommand(SHELL_CMD.check_su_binary) != null){ 
      return true; 
     }else{ 
      return false; 
     } 
    } 


      } 

舉例來說,如果這個代碼是,如果執行當我按下一個按鈕,我按了很多次這個按鈕,我的應用程序有一個ANR。

+0

真的嗎?你問一個問題,然後在10分鐘內重複一遍?那一定是個記錄! – Simon

+0

對不起,我的網絡連接出現問題。 –

回答

0

你應該是這樣的:

new Thread(new Runnable(){ 
    @Override 
    public void run(){ 
    boolean isRooted = isDeviceRooted(); 
    rootedListener.isDeviceRooted(isRooted); 
    } 
} 

然後聲明一個監聽器,以獲得異步響應