Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
1
Question by liortal · Dec 15, 2014 at 08:16 AM · androidpluginthreading

Android plugins and callbacks on non-scripting threads

We have a plugin that we "wrapped" and call into using the standard AndroidJavaClass and AndroidJavaObject classes.

Some of the methods accept callbacks, and for that we use the AndoidJavaProxy class, that is passed to the plugin code and gets invoked automagically by Unity.

The issue is, the callback is raised on an arbitrary thread (may be the UI thread or some other worker thread) that is NOT Unity's scripting thread.

Is there any infrastructure for easily marshalling calls to the scripting thread (automatically) ?

Currently we have a scene object and we enqueue the callbacks on it. That object runs its Update() methods and raises the callbacks (on the scripting thread).

I am looking for a built-in and easy way of doing the same.

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
1
Best Answer

Answer by Yury-Habets · Dec 29, 2014 at 02:22 PM

This is a good question.

In fact, I think that your solution

Currently we have a scene object and we enqueue the callbacks on it. That object runs its Update() methods and raises the callbacks (on the scripting thread).

is a good way to go. We do similar things in our Java code to post events to the main thread. Adding built-in infrastructure is complex and does not provide control when you want the callbacks to be called (in your code you can do it in Update() or at any convenient point).

Comment
Add comment · Show 3 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image liortal · Dec 29, 2014 at 03:00 PM 0
Share

It would've been nice to have that baked in. I use the AndroidJavaProxy class, I believe it could be possible to have the wrapper that you create to support this class to callback through an internal object that will raise the callback on the scripting thread, ins$$anonymous$$d of creating this object by the developer.

avatar image liortal · Dec 29, 2014 at 04:02 PM 0
Share

Also, on Android there's already infrastructure for that (Looper) to allow posting messages between threads. The only problem is i don't think the scripting thread uses a looper so I cannot use this mechanism at all.

avatar image Yury-Habets ♦♦ · Dec 30, 2014 at 10:08 AM 0
Share

Right, but we are talking about C# and scripting, not really Android APIs, aren't we? :) I got your point, though cannot promise this gets released in the nearest future. Thanks!

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

27 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Accessing the Activity Context in Android plugin 1 Answer

Soomla Error for android 1 Answer

Android Manifest Help 1 Answer

The name 'Joystick' does not denote a valid type ('not found') 2 Answers

You may not have purchased this app (OBB Expansion Files) 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges