コード例 #1
0
  @Override
  protected Void doInBackground(Void... params) {
    try {
      back.run(); // מריץ את הפונקציה שקיבל לביצוע ברקע
    } catch (Exception e) // אם התרחשה שגיאה
    {
      exceptionThrown = e;

      if (e.getMessage().contains("Read timed out")) // אם השגיאה היא שאין תקשורת לשרת
      {
        exceptionThrown = new Exception("No response from server. Try again.");
      } else if (e.getMessage()
          .contains(
              "@@@")) // אם נזרקה שגיאה מהשרת שאנחנו זרקנו שם, אז עטפנו אותה בשטרודלים וסולמיות ולכן
                      // היא תכיל שטרודלים
      {
        String s = e.getMessage();
        s =
            s.replaceAll(
                "[^@]*@@@|###[^@]*",
                ""); // מוחק מהשגיאה את כל הזבל שמופיע לפני ואחרי השגיאה, ומשאיר רק את החלק עם התוכן
                     // החשוב מהשגיאה
        exceptionThrown =
            new Exception(s); // זורק שוב את השגיאה מהמכשיר עצמו, ולכן היא לא תגיע עם עוד זבל
      } else // אם התרחשה שגיאה בלתי קונבנציונאלית, אז תגיד שיש בעיה
      {
        exceptionThrown = new Exception("Problem.");
      }
    }

    return null;
  }
コード例 #2
0
  @Override
  protected void onPostExecute(Void result) // לאחר ביצוע התהליך
      {
    try {
      if (progressDialog.isShowing()) {
        progressDialog.dismiss();
      }

      if (exceptionThrown != null) {
        Toast.makeText(myAct, exceptionThrown.getMessage(), Toast.LENGTH_SHORT).show();
      } else {
        post.run();
      }

    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }