우선, 내 프로젝트에 대한 일부 정보는 다음과 같습니다.asynctask에서 단편으로 결과를 반환하십시오.
여러 개의 조각으로 구성된 응용 프로그램이 있습니다. (나는 FragmentActivity를 확장하는 하나의 클래스와 FragmentPagerAdapter를 확장하는 또 다른 클래스를가집니다.) 그래서 실제로 코드가 Fragments 내부에서 실행 중입니다.
나는 몇 가지 계산을 수행 할 조각 중 하나 내부에 AsyncTask를 부른다. asyncTask는 별도의 파일이며 클래스가 Fragment 클래스 내에 있지 않습니다.
그래서 한 파일은 AsyncTask를하고 fragmet 다른 하나 (조각에서 변수는 AsyncTask를하여 직접 액세스 할 수 없습니다가!).
I는해서 ProgressDialog를 AsyncTask를 사용하여 결과를 표시 할 수있다. 그러나 나는 (asynctask의 결과) 데이터를 내 조각에있는 변수로 되돌릴 수 있기를 원합니다. 내가 지금까지 시도한 것은 :
내가 호출 된 다음 코드를 사용 : asyncatask.execute에서 GET을()()를 사용하여- 는
내가 이런 식으로 그것을 시도 버튼 클릭 후.
mytask1 = new myAsyncTask(this);
String result =mytask1.execute(value1).get();
그러나 주 스레드가 멈추고 asynctask가 완료 될 때까지 기다리는 결과가 발생합니다.
2.Using loginSharePreferens
loginPreferences = getActivity().getSharedPreferences("loginPrefs", Context.MODE_PRIVATE);
loginPrefsEditor = loginPreferences.edit();
loginPrefsEditor.putString("result", result);
loginPrefsEditor.commit();
이 나에게 오류를했다.
3.I도 2에있어서와 마찬가지로 되었음
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
시도.
4.I는 값을 설정하는 것입니다 내 조각의 방법을 만들려고하지 나는 조각
MyFrragment1.this.setRestult(1); // is called in the onPostExecute of the asyncTask
public void setRestult(int result){
this.test1=result; ///inside of the fragment
}
이 내부를 호출하려고 나에게 오류를 준 : "유형의 MyFragment1의 어떤 둘러싸는 인스턴스를 내가 시도하는 다른 모르는
"범위에 액세스 할 수 있습니다. 어떤 아이디어?
http://stackoverflow.com/questions/16627492/how-to-return-an-object-to-the-fragment-from-a-nested- static-asynctask/비슷한 질문 – Raghunandan
@Raghunandan 당신이 저에게 준 링크가 다른 방향으로 돌아가고 있다고 생각합니다. 나는 또한 나의 조각 –
에 다시 AsyncTask를의 결과를 검색 할, 내 상황이 다르다, 나는 조각 내부 AsyncTask를하지만, 별도의 –