0

問題があります。センサー(Android)からデータを読み取るバックグラウンドサービスがあります。今私は、PLC でContenPageでセンサーからのデータを必要とするが、私はPLC背景データページからコンテンツページへXamarin

` public override StartCommandResult OnStartCommand(Intent intent,  StartCommandFlags flags, int startId) 
{ 
    az = new Azimut(); 
    sd = new StepDetector(obererSchwellenWert, untererSchwellenWert, timerFlag, false); 
    //Start der Sensoren 
    Task.Run(() => 
    { 


     var mSensorManager = (SensorManager)Application.Context.GetSystemService(Context.SensorService); 
     var mLinearAccelerometer = mSensorManager.GetDefaultSensor(SensorType.LinearAcceleration); 
     mSensorManager.RegisterListener(sd, (Sensor)mLinearAccelerometer, SensorDelay.Fastest); 
     var mAzimutMagneticField = mSensorManager.GetDefaultSensor(SensorType.MagneticField); 
     mSensorManager.RegisterListener(az, (Sensor)mAzimutMagneticField, SensorDelay.Normal); 
     var mAzimutAccelerometer = mSensorManager.GetDefaultSensor(SensorType.Accelerometer); 
     mSensorManager.RegisterListener(az, (Sensor)mAzimutAccelerometer, SensorDelay.Normal); 
    }); 

    //Listener für Schritte 
    Task.Run(() => 
    { 
     while (true) 
     { 
//I need this Data 
      if (sd.schritt) 
      { 
       Console.WriteLine(i+++": "+az.azimut); 

       sd.schritt = false; 
      } 
     } 
    }); 
    return StartCommandResult.Sticky; 
}` 

にデータを送信することができる方法を知ってはいけない、これは私のバックグラウンドサービス

答えて

0

あなたはMessagingCenterを使用することができます。これは、2つの異なるコンポーネント/オブジェクト間の通信を可能にし、他のコンポーネント/オブジェクトを参照することはできません。

あなたのContentPageまたはAppクラスはmessgingcenterを購読し、あなたはBackgroundServiceからmessagingcenterにメッセージを送信します。基本的には使えます。

以下の記事では、Xamarinフォームの記事のバックグラウンドについて詳しく説明しています。お役に立てれば。

http://arteksoftware.com/backgrounding-with-xamarin-forms/

関連する問題