メソッド
onCreate()
の外部でアダプターを設定しようとすると、この例外 System services not available to Activities beforeが発生します。関数を使用してみましたが、まだ問題を解決できませんでした。これが実際の私のコードです。メソッドを介して Service サブクラスからアクティビティ クラスにリストを送信しています。onCreate()
runOnUIThread()
Class KitchenSerivce extends Service
@Override
public int onStartCommand(Intent intent, int flags , int startId)
{
super.onStartCommand(intent, flags, startId);
Toast.makeText(this, "Service started ...", Toast.LENGTH_SHORT).show();
try
{
SoapObject result=null;
SoapObject request=new SoapObject(NAME_SPACE, METHOD_NAME);
SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet=true;
envelope.setOutputSoapObject(request);
try
{
HttpTransportSE androidHttpTransportSE=new HttpTransportSE(URL, 5000);
androidHttpTransportSE.call(SOAP_ACTION, envelope);
result=(SoapObject)envelope.getResponse();
orderList=getOrder(result);
Log.v("Server response", result.toString());
}
catch (Exception e)
{
msg=Toast.makeText(this, "Connection to Server Failed", Toast.LENGTH_SHORT);
msg.show();
}
msg=Toast.makeText(this, result.toString(), Toast.LENGTH_SHORT);
msg.show();
KitchenManager kitchen=new KitchenManager();
kitchen.sendOrder(orderList);
}
catch (Exception e)
{
System.out.println("Exception Caught:"+e.getMessage());
}
return START_STICKY;
}
KitchenManager はアクティビティを拡張します
public void sendOrder(List<Order> orderList)
{
this.orderList=orderList;
for(int i=0;i<orderList.size();i++)
{
System.out.println("List Size:"+orderList.size());
System.out.println("Item:"+orderList.get(i).getItem());
}
adapter=new OrdersAdapter(KitchenManager.this,R.layout.kitchen_order_list,this.orderList);
if(this.orderList.size()==0)
{
}
else
{
list.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
}
sendOrder()
オンラインの public void で例外が発生しています
adapter=new OrdersAdapter(KitchenManager.this,R.layout.kitchen_order_list,this.orderList);
検索は完了しましたが、問題の解決策が見つからないため、誰かが私を助けることができればお願いします。前もって感謝します。