2015-10-12 44 views
2

我試圖把finish()方法停下來,但是它給了我的語法錯誤。我可以停止返回stack.Thanks提前。如何停止AsyncTask類中的活動

private class getNewMessages extends AsyncTask<ApiConnector, Long, JSONArray> { 


      @Override 
      protected JSONArray doInBackground(ApiConnector... params) { 
       try { 
        JSONArray array = params[0].getMessage(name, password); 
        // String [] array=new String[10]; 

        if (array.length() > 0) { 
         Intent nextScreen = new Intent(getApplicationContext(), bussiness.class); 
         nextScreen.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |Intent.FLAG_ACTIVITY_NEW_TASK); 
         startActivity(nextScreen); 

        } 
       }catch (Exception e) 
       { 
        Toast.makeText(getApplicationContext(),"Wrong Credintials", Toast.LENGTH_SHORT).show(); 
       } 
       return null; 
      } 

      @Override 
      protected void onPostExecute(JSONArray result) { 


      } 


     } 
+0

確實的AsyncTask內部類的活動嗎?如果是:NameOfActivity.this.finish(); – winston

+0

是它是一個內部類的服務類。在服務類中,我調用了intent.but但是你的方法對我不起作用。 – HRCJ

+0

服務等級或活動內部的內部? – winston

回答

0

嘗試使用(Activity)mContext).finish();finish();

+0

它沒有爲我工作。 – HRCJ

+0

你的語法錯誤是什麼? – Jas

+0

startActivity(nextScreen); finish(); 「無法解析方法完成()」。 – HRCJ

2

改變你的代碼到你的onPostExecute回調

 @Override 
     protected void onPostExecute(JSONArray result) { 
      if (result.length() > 0) { 
        Intent nextScreen = new Intent(getApplicationContext(), bussiness.class); 
        nextScreen.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK |Intent.FLAG_ACTIVITY_NEW_TASK); 
        startActivity(nextScreen); 
       } 

     } 
+0

事情是finish()方法不起作用。 – HRCJ

+0

請檢查編輯後的答案。 – Rohan

+0

對不起,它也顯示錯誤。「上下文無法解析」 – HRCJ