Sample code for 30+ languages & platforms
Android™

Understanding Async Function Return Values

See more Async Examples

Explains how to get the return value of the function called synchonously in the background thread.

Chilkat Android™ Downloads

Android™
// Important: Don't forget to include the call to System.loadLibrary
// as shown at the bottom of this code sample.
package com.test;

import android.app.Activity;
import com.chilkatsoft.*;

import android.widget.TextView;
import android.os.Bundle;

public class SimpleActivity extends Activity {

  private static final String TAG = "Chilkat";

  // Called when the activity is first created.
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    boolean success = false;

    // Some Chilkat functions can be called asynchronously.
    // If a function "Func" can be called asynchronously, there will be a corresponding "FuncAsync" function that returns a Task object.
    // 
    // When Task.Run is called, the synchronous "Func" runs in a background thread.
    // 

    // For Chilkat methods that return a status (true/false), get returned value by calling GetResultBool.
    // For example..

    CkSocket sock = new CkSocket();

    // --------------------------------------------------------------
    // Synchronous call returning true/false
    success = sock.Connect("example.com",443,true,5000);

    // --------------------------------------------------------------
    // Asynchronous call
    CkTask task = sock.ConnectAsync("example.com",443,true,5000);
    // ...
    task.Run();
    // ...
    // ...
    // Get the status (true/false) value returned by the synchronous method called in the background thread.
    success = task.GetResultBool();

    // --------------------------------------------------------------
    // Synchronous call returning an integer
    int count = sock.ReceiveCount();

    // --------------------------------------------------------------
    // Asynchronous call
    task = sock.ReceiveCountAsync();
    // ...
    task.Run();
    // ...
    // ...
    // Get the integer value returned by the synchronous method called in the background thread.
    count = task.GetResultInt();

    // --------------------------------------------------------------
    // Synchronous call returning an string
    String s = sock.receiveString();

    // --------------------------------------------------------------
    // Asynchronous call
    task = sock.ReceiveStringAsync();
    // ...
    task.Run();
    // ...
    // ...
    // Get the string value returned by the synchronous method called in the background thread.
    s = task.getResultString();

    // --------------------------------------------------------------
    // Synchronous call returning an object
    CkSocket connection = sock.AcceptNextConnection(5000);

    // --------------------------------------------------------------
    // Asynchronous call
    task = sock.AcceptNextConnectionAsync();
    // ...
    task.Run();
    // ...
    // ...
    // Get the object returned by the synchronous method called in the background thread.
    // We do this a little differently.  We create an new object of the same type,
    // and then load it with the returned object (assuming it was not null).
    CkSocket acceptedConnection = new CkSocket();
    if (task.get_TaskSuccess() == true) {
        success = acceptedConnection.LoadTaskResult(task);
        }


  }

  static {
      System.loadLibrary("chilkat");

      // Note: If the incorrect library name is passed to System.loadLibrary,
      // then you will see the following error message at application startup:
      //"The application <your-application-name> has stopped unexpectedly. Please try again."
  }
}