Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » UltraLite - .NET-Programmierung » UltraLite .NET 2.0 API-Referenz » ULActiveSyncListener-Schnittstelle

 

ActiveSyncInvoked-Methode

Wird aufgerufen, wenn der MobiLink-Provider für ActiveSync die Anwendung aufruft, um die Synchronisation auszuführen

Syntax
Visual Basic
Public Sub ActiveSyncInvoked( _
   ByVal launchedByProvider As Boolean) _
C#
      public void ActiveSyncInvoked(
   bool launchedByProvider);
Parameter
  • launchedByProvider   TRUE, wenn die Anwendung vom MobiLink-Provider gestartet wurde, um die ActiveSync-Synchronisation durchzuführen. Die Anwendung muss sich dann selbst beenden, nachdem sie die Synchronisation abgeschlossen hat. FALSE, wenn die Anwendung bereits lief, als sie vom MobiLink-Provider für ActiveSync aufgerufen wurde.

Bemerkungen

Diese Methode wird von einem eigenen Thread aufgerufen. Um Multi-Thread-Probleme zu vermeiden, sollte sie ein Ereignis an die Benutzerschnittstelle senden. Bei der Verwendung von Multi-Threading sollten Sie eine separate Verbindung sowie das Sperren-Schlüsselwort benutzen, um auf die Objekte zuzugreifen, die gemeinsam mit dem Rest der Anwendung verwendet werden.

Wenn die Synchronisation abgeschlossen wurde, müssen Anwendungen ULDatabaseManager.SignalSyncIsComplete() aufrufen, um den MobiLink-Provider für ActiveSync zu signalisieren.

Beispiel

Die folgenden Codefragmente zeigen, wie eine ActiveSync-Anforderung empfangen und eine Synchronisation auf dem UI-Thread ausgeführt wird.

' Visual Basic
Imports iAnywhere.Data.UltraLite
   
Public Class MainWindow
  Inherits System.Windows.Forms.Form
  Implements ULActiveSyncListener
  Private conn As ULConnection

  Public Sub New(ByVal args() As String)

    MyBase.New()

    'This call is required by the Windows Form Designer.
    InitializeComponent()

    'Add any initialization after the InitializeComponent() call
    ULConnection.DatabaseManager.SetActiveSyncListener( _
        "myCompany.myapp", Me _
      )
    'Create Connection
    ...
  End Sub

  Protected Overrides Sub OnClosing( _
        ByVal e As System.ComponentModel.CancelEventArgs _
      )
    ULConnection.DatabaseManager.SetActiveSyncListener( _
        Nothing, Nothing _
      )
    MyBase.OnClosing(e)
  End Sub

  Public Sub ActiveSyncInvoked( _
        ByVal launchedByProvider As Boolean _
      ) Implements ULActiveSyncListener.ActiveSyncInvoked
    Me.Invoke(New EventHandler(AddressOf Me.ActiveSyncAction))
  End Sub

  Public Sub ActiveSyncAction( _
        ByVal sender As Object, ByVal e As EventArgs _
      )
    ' Do active sync
    conn.Synchronize()
    ULConnection.DatabaseManager.SignalSyncIsComplete()
  End Sub
End Class
// C#
using iAnywhere.Data.UltraLite;
public class Form1 : System.Windows.Forms.Form, ULActiveSyncListener
{
  private System.Windows.Forms.MainMenu mainMenu1;
  private ULConnection conn;

  public Form1()
  {
    //
    // Required for Windows Form Designer support
    //
    InitializeComponent();

    //
    // TODO: Add any constructor code after
    // InitializeComponent call
    //
    ULConnection.DatabaseManager.SetActiveSyncListener(
        "myCompany.myapp", this
      );
    // Create connection
    ...
  }

  protected override void Dispose( bool disposing )
  {
    base.Dispose( disposing );
  }

  protected override void OnClosing(
      System.ComponentModel.CancelEventArgs e
    )
  {
    ULConnection.DatabaseManager.SetActiveSyncListener(
        null, null
      );
    base.OnClosing(e);
  }

  public void ActiveSyncInvoked(bool launchedByProvider)
  {
    this.Invoke( new EventHandler( ActiveSyncHandler ) );
  }

  internal void ActiveSyncHandler(object sender, EventArgs e)
  {
    conn.Synchronize();
    ULConnection.DatabaseManager.SignalSyncIsComplete();
  }
}
Siehe auch