package com.test;import android.content.Context;
import android.os.Handler;
import android.os.Message;public abstract class Action
{
  protected Context context;
  private int errorCode = 2;
  private int loadingCode = 0;
  private Logger log = Logger.getLogger(getClass());
  private int successCode = 1;  public Action(Context paramContext, int paramInt1, int paramInt2, int paramInt3)
  {
    this.context = paramContext;
    this.loadingCode = paramInt1;
    this.successCode = paramInt2;
    this.errorCode = paramInt3;
  }  protected abstract Message getMsgFromCache(Params paramParams)
    throws Exception;  protected abstract Message getMsgFromMasterServer(Params paramParams)
    throws Exception;  protected abstract Message getMsgFromSlaveServer(Params paramParams)
    throws Exception;  protected abstract Message parser(String paramString)
    throws Exception;  public Message run(Params paramParams)
  {
    try
    {
      Message localMessage3 = getMsgFromMasterServer(paramParams);
      return localMessage3;
    }
    catch (Exception localException1)
    {
      localException1.printStackTrace();
      try
      {
        Message localMessage2 = getMsgFromSlaveServer(paramParams);
        return localMessage2;
      }
      catch (Exception localException2)
      {
        localException2.printStackTrace();
        try
        {
          Message localMessage1 = getMsgFromCache(paramParams);
          return localMessage1;
        }
        catch (Exception localException3)
        {
          localException3.printStackTrace();
        }
      }
    }
    return null;
  }  public void run(final Handler paramHandler, final Params paramParams)
  {
    new Thread()
    {
      public void run()
      {
        paramHandler.sendEmptyMessage(Action.this.loadingCode);
        try
        {
          Message localMessage5 = Action.this.getMsgFromMasterServer(paramParams);
          if (localMessage5 != null)
          {
            paramHandler.sendMessage(localMessage5);
            return;
          }
        }
        catch (Exception localException1)
        {
          Action.this.log.e(localException1);
          try
          {
            Message localMessage4 = Action.this.getMsgFromSlaveServer(paramParams);
            localObject2 = localMessage4;
            if (localObject2 != null)
            {
              paramHandler.sendMessage((Message)localObject2);
              return;
            }
          }
          catch (Exception localException2)
          {
            while (true)
            {
              Object localObject2;
              Action.this.log.e(localException2);
              try
              {
                Message localMessage3 = Action.this.getMsgFromCache(paramParams);
                localObject2 = localMessage3;
              }
              catch (Exception localException3)
              {
                Action.this.log.e(localException3);
                localObject2 = null;
              }
            }
          }
        }
        finally
        {
          if (0 != 0)
            paramHandler.sendMessage(null);
          while (true)
          {
            throw localObject1;
            Message localMessage2 = new Message();
            localMessage2.what = Action.this.errorCode;
            localMessage2.obj = "链接失败";
            paramHandler.sendMessage(localMessage2);
            return;
            Message localMessage1 = new Message();
            localMessage1.what = Action.this.errorCode;
            localMessage1.obj = "链接失败";
            paramHandler.sendMessage(localMessage1);
          }
          Message localMessage6 = new Message();
          localMessage6.what = Action.this.errorCode;
          localMessage6.obj = "链接失败";
          paramHandler.sendMessage(localMessage6);
        }
      }
    }
    .start();
  }
}
就是下面的run方法不知道怎么组合反编译androidrun

解决方案 »

  1.   

    这个逻辑已经相对比较清晰了。while(true)大部分对应的是else。
    想把逻辑完全还原需要多试几次。
      

  2.   

    我知道。就是return位置。以及finally后面混乱。还多出一个localobject1?求帮忙啊
      

  3.   

    猜到了但是还有各种问题存在。现在就是没有处理好error的。太混乱啦。不是自己不去写啊。主要是想用他这个结构感觉挺好的。之前写了感觉没人家写的好。才拿来借鉴。各位帮帮啦