2012-02-28 5 views
0

私のアプリでは、TabGroupActivityを使用して複数の子を1つのタブで使用しています。私は子に移動してボタンをクリックするたびに、onCreateメソッドが再び呼び出されます(2回目)、そのパフォーマンスは低いと思われる、アクティビティのonCreateメソッドでWebサービスを呼び出すことがありました。OnCreate()でWebServiceを呼び出すと、パフォーマンスが低下します。androidの問題点

EX: ` @Override

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.test); 
     getBundle = new Bundle(); 
     getBundle=getIntent().getExtras();   
     intentData = getBundle.getString("Search_Result"); 
     bikeItemList=new ArrayList<SearchResultsIdentifier>(); 
     System.out.println("sdf"+bikeItemList.size()); 
     DataService searchDS = new DataService(); 
     try { 
      URL test=new URL(intentData); 
      itemList=searchDS.getSearchList(test); 
     } catch (MalformedURLException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

     final ListView lv1 = (ListView) findViewById(R.id.list); 
     lv1.setAdapter(new ListAdapter(tList.this,R.layout.search_bike,itemList,this)); 




    }` 

私はAndroidのアクティビティ図の通り、これを避けることができますどのように私は子供にナビゲートBAKのonCreate won`t呼び出すが、ここで私はタブグループの活動を使用する]をクリックします。 2回Webサービスコールの問題を解決する方法。

答えて

0

それを読む:
http://developer.android.com/guide/practices/design/responsiveness.html

http://developer.android.com/guide/topics/fundamentals/processes-and-threads.html#Threads
これまでUIインターフェイスで長時間実行されるタスクを開始することはありませんことを!

+0

実際に私はサービスを打つためにスレッドを使用しています....私はサービスを呼び出していました....私はAsyncTaskを使用してサービスを呼び出します。しかし、それは私の問題であることを2度呼びました – Karthi

+0

いいえ、問題があります。あなたは 'itemList = searchDS.getSearchList(test)'のようなものを呼び出します。この場所では、プログラムは 'getSearchList()'が戻るのを待っています! – pawelzieba

+0

ええ、私はこの操作をAsyncTaskでのみ行いますが、私はこのアクティビティを起動して、それがうまくいけば、リストから次のアクティビティへナビゲートして、子から再びクリックするとonCreateメソッドが呼び出されます。 – Karthi

関連する問題