2017-11-08 1 views
0

Androidプロジェクトに3つ以下のファイルがあります(アプリケーション層に1つのJavaファイル、JNI層に1つのcppファイル、&ネイティブレイヤーに1つのcppファイル)。Androidのネイティブレイヤーファイルからアプリケーションレイヤーファイルをコールバックする方法は?

  1. MyActivity.java(アプリケーション層)
  2. MyJNIInterface.cpp(JNIインタフェース)
  3. MyNativeFile.cpp。 (ネイティブ実装)

JNIインターフェイスを使用してアプリケーションレイヤーからネイティブレイヤーでapiを呼び出すことができます。

ネイティブレイヤーファイル(MyNativeFile.cpp)からアプリケーションレイヤーファイル(MyActivity.java)へのコールバックを行う方法はありますか?

いくつかのサンプルコードを共有してください。

+0

ここをクリックしてください:https://github.com/mkowsiak/jnicookbook/tree/master/recipeNo032 – mko

答えて

0

はい、可能です。コールバックがサポートされているので、Googleの

0

アンドロイドが提供する

チェックthisサンプルアプリは、完全に、(JNI_CreateJavaVM()除く)標準JNIを実装しています。 Javaで起動していないスレッドからJavaを呼び戻す場合は、JVMにスレッドをアタッチする必要があります(UIスレッドにはAttachCurrentThread()は必要ありません)。

関連する問題