Unity3d如何在不影响主线程的情况下调用Android服务并创建新线程?

更新于
2026-10-12 10:50:49
1阅读来源:SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计126个文字,预计阅读时间需要1分钟。

Unity3d如何在不影响主线程的情况下调用Android服务并创建新线程?

由于调用getSystemService()方法引发崩溃:无法在未调用Looper.prepare()的线程中创建handler。使用Runnable()开启线程调用。final关键字可以将paramStr设置为方法内共有参数public。

gistfile1.txt

//因调用getSystemService()方法引发报错: //Can't create handler inside thread that has not called Looper.prepare() //使用Runnable()开辟线程调用 //final关键字可以将paramStr设为方法内共有参数 public void CopyToSystemClipboard(final String paramStr){ Log.d("Unity", "=======CopyToSystemClipboard " + paramStr); //runOnUiThread方法调用一个UI线程 runOnUiThread( new Runnable() { @Override public void run() { // 向剪贴板中添加文本 clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); ClipData textCd = ClipData.newPlainText("data", paramStr); clipboard.setPrimaryClip(textCd); mUnityPlayer.UnitySendMessage("GameManagerPrefeb", "OnShowCopySucessMsg", paramStr); } } ); }

Unity3d如何在不影响主线程的情况下调用Android服务并创建新线程?

本文共计126个文字,预计阅读时间需要1分钟。

Unity3d如何在不影响主线程的情况下调用Android服务并创建新线程?

由于调用getSystemService()方法引发崩溃:无法在未调用Looper.prepare()的线程中创建handler。使用Runnable()开启线程调用。final关键字可以将paramStr设置为方法内共有参数public。

gistfile1.txt

//因调用getSystemService()方法引发报错: //Can't create handler inside thread that has not called Looper.prepare() //使用Runnable()开辟线程调用 //final关键字可以将paramStr设为方法内共有参数 public void CopyToSystemClipboard(final String paramStr){ Log.d("Unity", "=======CopyToSystemClipboard " + paramStr); //runOnUiThread方法调用一个UI线程 runOnUiThread( new Runnable() { @Override public void run() { // 向剪贴板中添加文本 clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); ClipData textCd = ClipData.newPlainText("data", paramStr); clipboard.setPrimaryClip(textCd); mUnityPlayer.UnitySendMessage("GameManagerPrefeb", "OnShowCopySucessMsg", paramStr); } } ); }

Unity3d如何在不影响主线程的情况下调用Android服务并创建新线程?