Articles of 绑定

Android – bindService不止一次

绑定服务多次使用相同的上下文到相同的服务可以吗? 我可以使用相同的上下文多次bindService到相同的服务和unBindService只有一次? 谢谢

Android:服务在Activityclosures时停止

如果我理解正确,bindService()与BIND_AUTO_CREATE将启动一个服务,并不会死,直到所有绑定全部解除绑定。 但是,如果我bindService(BIND_AUTO_CREATE)在onCreate()和回击buttonclosures活动,服务调用onDestroy()并死也。 我不会在任何时候调用unbind()。 那么当Activity被破坏时,绑定是否被破坏,服务被破坏呢? 如果我希望服务始终在运行,那么在启动活动的同时,我想要绑定它以便可以访问该服务? 如果我调用StartService(),然后在onCreate()上bindService(),它将在每次启动Activity时重新启动服务。 (我不想要)。 所以我可以开始服务一次,然后绑定下一次我启动活动?

Android:java.net.DatagramSocket.bind:无效的参数exception

背景:我正在写一个简单的UDP应用程序来ping一个testing版服务器,我每分钟pipe理一次,告诉我它仍然在运行(我不能在服务器上为那些想知道的启用ping)。 我打算在服务器不再响应时在手机上运行这个命令来警告我。 我试图使用看似简单的java.net.DatagramSocket这样的: try { socket = new DatagramSocket(); socket.bind(null); } catch (SocketException e) { System.out.println(e.toString()); throw e; } 让我也说,我已经启用了互联网的权限,通过Android清单,如果我删除使用子句这样做,我得到一个权限错误,所以我敢肯定,工作正常。 当我将此代码下载到Android虚拟设备(AVD)并执行它时,在bind()的调用中出现以下exception: 03-17 19:07:39.401:INFO / System.out(338):java.net.BindException:无效参数 根据这个文档,null参数是正确的: public void bind(SocketAddress localAddr) 因为:API级别1 将此套接字绑定到localAddr指定的本地地址和端口。 如果此值为空,则使用有效本地地址上的任何空闲端口 。 但不信任文档,我决定枚举在我的设备上的IP地址,如下所示: ArrayList<NetworkInterface> allInterfaces = Collections.list(NetworkInterface.getNetworkInterfaces()); NetworkInterface eth = allInterfaces.get(0); InetSocketAddress addr = new InetSocketAddress(eth.getInetAddresses().nextElement(), port); try { socket = new DatagramSocket(); […]

使用瑞士语法将MvvmCross绑定到android控件上的多个属性

绑定到Android元素的多个属性的正确语法是什么? 我尝试了这样的local:MvxBind="{ Value StartTime, Text StartTimeText}" 其中属性StartTime和StartTime文本是在ViewModel中定义的,但是这不起作用。 值和文本是此自定义控件的属性。 ViewModel可能如下所示: public class ViewModel { public DateTime StartTime{get;set;} public string StartTimeText {get;set;} } 我发现这个相关的问题 ,但找不到多个绑定正确的瑞士语法。 任何一个在一个元素上完成多个绑定? TIA。

数据绑定:当对象的属性是int时,资源$ NotFoundException

我正在尝试使用数据绑定。 如果我使用具有string属性的对象,这是正常工作,但在这种情况下,我使用int,它不起作用。 我有对象用户: public class User extends BaseObservable{ public int age; …… public User() {} public int getAge() { return age; } public void setAge(int age) { this.age = age; } … } 这是我的布局 <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android"> <data> <variable name="user" type="com.example.bindingview.User"/> </data> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@{user.age}"/> </LinearLayout> </layout> 问题是,TextView不能有年龄是int的文本。 […]

在Android上绑定服务与启动服务以及如何做到这一点

我在这里和这里提出一个令人烦恼的问题,这个问题已经(部分在我心中)提到。 比方说,在很多例子中,我们想要创build一个音乐应用程序,使用(说)一个单一的活动和一个服务。 我们希望服务在活动停止或销毁时持续存在。 这种生命周期提出了一个开始的服务: 当一个应用程序组件(如一个活动)通过调用startService()来启动它时,服务就会“启动”。 一旦启动,服务可以无限期地在后台运行,即使启动它的组件被销毁 好的,但我们也希望能够与服务进行通信,所以我们需要一个服务绑定。 没问题,我们有一个约束和开始服务,因为这个答案表明 : 在活动启动(或其他点),我们调用startService() 之后,我们调用bindService()来获取IBinder接口,并从那里继续。 到目前为止这么好,但是一个问题产生于这样一个事实,即当活动开始时,我们不知道服务是否在附近。 它可能已经开始,或者可能没有。 答案可能是这样的: 在启动时,尝试绑定到服务(使用bindService()没有BIND_AUTO_CREATE标志) 如果失败,则使用startService()启动服务,然后绑定到它。 这个想法的前提是对bindService()的文档进行特定的阅读: 连接到应用程序服务,如果需要创build它。 如果零标志意味着“服务不是真的需要”,那么我们就没有问题。 所以我们使用下面的代码尝试这样的事情: private void connectToService() { Log.d("MainActivity", "Connecting to service"); // We try to bind to an existing service Intent bindIntent = new Intent(this, AccelerometerLoggerService.class); boolean bindResult = bindService(bindIntent, mConnection, 0); if (bindResult) { // Service existed, […]

.jar将android库导入到Xamarin项目中

Andorid又名本地代码(Java代码)可以通过几种方式集成到Xamarin项目中。 本文列出了官方的方式。 我们正在尝试使用文章中描述的Java库绑定方法。 我们的testing类库是专门针对这个问题在Github上发布的 。 我们已经在Android开发人员工具中将其设置为Java Android库。 它在Eclipse中构build成.jar格式,Xamarin网站上的教程假定已经足够了。 如果我们尝试在Visual Studio中将.jar绑定到我们的项目中,那么对象资源pipe理器将向我们显示绑定的asseblie的名称空间,但是在代码中,即使程序集被引用,我们也无法访问名称空间中的方法和类,在我们的testingjava android的lib下载 另一方面,当我们把几乎所有的.jar(这是一个在互联网上的android库),我们可以绑定它并访问它的方法没有问题。 请比较两个.jar,如果可能的话,让我知道我们在github上testing的android库有什么问题,导致我们的命名空间在代码中不可用。

onBind()永远不会在服务中调用

我正在编写一个绑定服务的基于服务的应用程序,并且该服务的onBind()方法似乎永远不会被调用(使用Toasts和Logs进行testing)。 服务: import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.app.Service; import android.content.Context; import android.content.Intent; import android.location.Criteria; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Binder; import android.os.Bundle; import android.os.IBinder; import android.util.Log; import android.widget.Toast; import com.gmail.zack.yovel.FlickAround.MyActivity; import com.gmail.zack.yovel.FlickAround.R; import org.json.JSONArray; import org.json.JSONObject; import java.util.ArrayList; /** * Created with IntelliJ IDEA. * User: Ziky * Date: 09/04/13 * […]

绑定到另一个应用程序的服务

我写了两个应用程序(目标姜饼)。 假设说app1和app2。 App1有两个以“BOOT_COMPLETED”开头的服务,它们以返回值START_STICKY开始。 他们在不同的线程中运行。 使长话短说。 其中一项服务是在串口(一种用于与串口另一端的接口进行通信的应用代理)上观察input数据。 另一个有一个监听者看一些系统状态,并等待来自其他应用程序的一些“指令”。 我知道他们运行良好,因为他们列在正在运行的服务,我添加了一些代码,迫使他们做一些东西,当一些特定的数据来自串行端口。 现在的问题:我写了app2。 它试图绑定到app1中的一个服务。 我使用了android-developper文档,并在app1和app2中的服务之间实现了双向通信。 由于我只有less量非常简单的数据发送,所以我使用了一个信使,就像build议的那样。 我基本上只是使用“什么,arg1和arg2”,我没有使用AIDL接口的文档build议。 这里是androidmanifest中声明app1中服务的部分,我也尝试绑定。 <service android:name=".ModemWatcherService" android:label="@string/app_name" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> <!– Service name –> <action android:name="com.admetric.modemwatcher.Service" /> </intent-filter> </service> 那么,下面是在app1中处理这个问题的几个方法: @Override public IBinder onBind(Intent intent) { Log.d(TAG, "entering onBind"); return mMessenger.getBinder(); } /** * Handler of incoming messages from clients. […]

有没有一种方法可以在Android上将JavaScript的数组缓冲区传递给java?

我被困在这个案子上了一会儿。 我有Android 4.4.3的webview,我有一个web应用程序拥有包含二进制数据的float32array 。 我想通过与JavascriptInterface绑定的函数将该array传递给Java Android。 然而,看起来像在Java中,我只能传递像String , int等原始types… 有没有办法给Java这个arrayBuffer? 谢谢 !