2016-03-21 11 views
-1

私はサーバーからデータを取得するためにonresume()のWebサービスを呼び出しています。問題は、ユーザーが最小化してアプリケーションを再び開いてデータを取得するためにWebサービスを呼び出す場合です。私はそのような状態で再びデータをロードしたくない。その場合、データをロードする最も良い方法は何ですか。onresumeのwebserviceからデータをロードする

@Override 
protected void onResume() { 
lAttendence= getAttendence ('goku' ,'20/mar/2016' ,'21/mar/2016'); 
EtAtendence.setText(lAttendence) 
    super.onResume(); 
} 




public String getAttendence(String pStuid, String pFromdate, String pTodate){ 
    final String SOAP_ACTION = "http://adad.org/attendenceDetail"; 
     final String METHOD_NAME = "attendenceDetail"; 
     final String NAMESPACE = "http://xxxx.org/"; 
     final String URL = "http://xxxxx.in/service.asmx"; 


     SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);   
     request.addProperty("pStuID", pStuid); 
     request.addProperty("pFromDate",pFromdate); 
     request.addProperty("pTodate",pTodate); 
     SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
     envelope.dotNet = true; 
     envelope.setOutputSoapObject(request); 
String result=""; 
     HttpTransportSE ht = new HttpTransportSE(URL); 
     try { 
     ht.call(SOAP_ACTION, envelope); 
      Object responses = envelope.getResponse(); 
      result=responses.toString(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

return result; 
} 
+1

具体的にして、いくつかのコードを示してください。 – barq

+0

ローダーのパターンを見てください –

答えて

0

情報を保存するシングルトンを使用することも、SharedPreferencesを使用して情報をそこに保存することもできます。私の場合はシングルトンを使用していますが、SharedPreferencesはより良い方法です。 シングルトンは内部にインスタンスが1つしかないオブジェクトです。プライベートコンストラクタと内部インスタンスを返すgetInstanceメソッドがあります。属性を使用して情報を保存します。 例:

piblie class singleton{ 
private String oneString; 
private singleton instance; 
private singleton(){} 
public static initialize(){instance=new singleton();} 
public static singleton getInstance(){ return instance;} 
public void setString(String s){ oneString=s;} 
public String getString(){return oneString;} 
} 

そして、あなたは、アプリケーション、のonCreate(に置くこの)からクラスTATHのextensを使用する必要があります。SharedPreferencesについては

singleton.initialize() 

http://developer.android.com/intl/es/reference/android/content/SharedPreferences.html

EDIT:の場合tiは文字列の場合のみ、SharedPreferencesを使用する必要があります このようなもの:

String AppName="your_app_name"; 
    String theString=""; 
    SharedPreferences shared=getSharedPreferences(AppName, 0); 
    if(!shared.contains("your_saved_thing_name")) 
    { 
     SharedPreferences.Editor editor =shared.edit(); 
     editor.putString("your_saved_thing_name",webserviceCall()); 
     editor.commit(); 
    } 
    theString=shared.getInt("your_saved_thing_name", webserviceCall()); 
+0

私たちは何ができるのでしょうか?あなたの答えをお返事ありがとうございます – sunilkarkala

+0

私はあなたもSharedPreferencesを使うことができると思います。私は配列のためのシングルトンを使います。例の中のoneStringの代わりに、あなたが望むものは何でも使えます。 – DonLeopardo

関連する問題