我试图在我的网站上使用reCaptcha,并且recaptcha_challenge_field和recaptcha_response_field没有被添加到后端的$ _POST数组中 - 但是我的表单中的其余变量是.
有任何想法吗?我仔细检查了公钥/私钥.
这是生成的HTML:
<form action='myform.php' name='myform' id='myform' method='post' enctype='multipart/form-data'>
<tr class='select'>
<td class='label'>Name:</td>
<td>
<input type='text' name='name' id='name' class='inputtext' maxlength='25' size='25' >
</td>
</tr>
<tr class='select'>
<td class='label'>Email:</td>
<td>
<input type='text' name='email' id='email' class='inputtext' maxlength='25' size='25' >
</td>
</tr>
<tr class='select'>
<td class='label'>Message:</td>
<td>
<textarea class='inputtext' name='message' rows='10' cols='45'></textarea>
</td>
</tr>
<tr class='select'>
<td class='label'>Are you human?</td>
<td>
<script type="text/javascript" src="http://api.recaptcha.net/challenge?k=MY_KEY"></script>
<noscript>
<iframe src="http://api.recaptcha.net/noscript?k=MY_KEY" height="300" width="500" frameborder="0"></iframe><br/>
<textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
<input type="hidden" name="recaptcha_response_field" value="manual_challenge"/>
</noscript>
</td> …Run Code Online (Sandbox Code Playgroud) 考虑一个调用exit()作为最后一条指令的信号处理程序:在该处理程序中调用非重入函数(例如free())是否安全?
恕我直言,这是合法的,因为处理程序没有返回到正常的执行顺序.
先感谢您.
这个例子非常简单:我想通过显示文本(canvas.drawText())让用户知道应用程序正在做什么.然后,我的第一条消息出现,但不是其他消息.我的意思是,我有一个"setText"方法,但它没有更新.
onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(splash); // splash is the view class
loadResources();
splash.setText("this");
boundWebService();
splash.setText("that"):
etc();
splash.setText("so on");
}
Run Code Online (Sandbox Code Playgroud)
视图的文本绘图只需在onDraw();中执行drawText,因此setText会更改文本但不会显示它.
有人建议我用SurfaceView替换视图,但是对于几个更新来说会有很多麻烦,所以...我怎么能在运行时以动态更新视图?
它应该很简单,只显示2秒的文本,然后主线程做他的东西,然后更新文本...
谢谢!
更新:
我尝试实现handler.onPost(),但是又重复了同样的故事.我给你看一下代码:
public class ThreadViewTestActivity extends Activity {
Thread t;
Splash splash;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
splash = new Splash(this);
t = new Thread(splash);
t.start();
splash.setTextow("OA");
try { Thread.sleep(4000); } catch (InterruptedException e) { }
splash.setTextow("LALA");
}
}
Run Code Online (Sandbox Code Playgroud)
和:
public class Splash implements …Run Code Online (Sandbox Code Playgroud) 我的问题是自定义GameView(扩展SurfaceView)和TextView之间的通信:我想从GameView内部设置TextView的文本.在主要活动我正在使用这个布局文件,它应该解释我的应用程序的结构:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#00ff00"
>
<TextView
android:id="@+id/scoreTV"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="score: 0"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="back"
android:layout_alignParentRight="true" />
</RelativeLayout>
<org.gk.grApp.GameView
android:id="@+id/gameplayScreen"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我无法在GameView对象中更改TextView的文本,因为无法从另一个接触UI线程.Handler也不起作用,因为我无法给Gamecher的构造函数提供一个处理程序的引用,这是在加载这个xml文件后执行的(读取xml文件的默认构造函数,例如这里我如何在LinearLayout中使用GLSurfaceView和其他视图,如TextView或Button?).你知道我现在应该做什么吗?也许我的演绎错了,所以请告诉我这个.
编辑:我改变了我的xml文件,而不是我现在拥有的GameView:
<LinearLayout
android:id="@+id/gameplayScreen"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我还在构造函数的签名中添加了一个参数(第三个):
public GameView(Context context, AttributeSet as, Handler h) { ... }
Run Code Online (Sandbox Code Playgroud)
并在GameplayActivity中更改了我的onCreate:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gameplay);
LinearLayout ll = (LinearLayout)findViewById(R.id.gameplayScreen);
GV = new GameView(this, null, scoreHandler);
ll.addView(GV);
}
Run Code Online (Sandbox Code Playgroud)
它可以工作,现在我可以设置TextView的文本,但是在单击后退按钮后会抛出另一个异常:"执行暂停未恢复的活动:{org.gk.grApp/org.gk.grApp.MainMenuActivity}".我刚刚开始搜索有关此信息.
我正在尝试配置嵌入式Jetty(7.6)来同时处理WebSocketHandler,ServletContextHandler和ResourceHandler类.
我已经尝试过使用HandlerCollection和HandlerList类,但我不能让所有3个部分都能工作.
Server server = new Server(8081);
// static files handler
ResourceHandler resourceHandler = new ResourceHandler();
resourceHandler.setDirectoriesListed(true);
resourceHandler.setResourceBase("./src/main/webapp/");
// servlet handler
ServletContextHandler servletContextHandler = new ServletContextHandler(ServletContextHandler.SESSIONS);
servletContextHandler.setContextPath("/");
servletContextHandler.addServlet(new ServletHolder(new myServlet()), "/myServlet");
// websocket handler
myWebSocketHandler myWebSocketHandler = new myWebSocketHandler();
// putting it together
HandlerCollection handlerList = new HandlerCollection();
handlerList.setHandlers(new Handler[]{resourceHandler,myWebSocketHandler,servletContextHandler});
server.setHandler(handlerList);
Run Code Online (Sandbox Code Playgroud)
在这种状态下,静态文件和servlet处理得很好,但是当我发送websocket请求时,我得到:
2012-02-22 10:16:44.703:WARN:oejs.Response:Committed before 503 null
2012-02-22 10:16:44.705:WARN:oejs.AbstractHttpConnection:/
java.lang.IllegalStateException: Committed
at org.eclipse.jetty.server.Response.resetBuffer(Response.java:1080)
...
Run Code Online (Sandbox Code Playgroud)
如果我在我的websockets处理程序中检查基本请求"处理"属性的状态,它已经设置为true.所以这意味着我的请求正在处理并提交到myWebSocketHandler之前提交?
任何评论都表示赞赏,谢谢.
我见过你可以附上这样的事件
<button type="button" id="myButton" onclick="myFunction()">
Run Code Online (Sandbox Code Playgroud)
如果没有"onclick=",你可以这样做,如:
document.getElementById('myButton'). //and here attach the event on click to myFunction
Run Code Online (Sandbox Code Playgroud)
我试图将JavaScript和HTML分开.
问题:
与在Android中使用Messenger到Messenger通信相比,使用Handler到Handler通信是"更好"(=更快,更少开销)吗?
情况:
Android应用程序,有一堆活动和一个服务运行(启动服务).在服务中,一些线程在服务的主线程旁边运行.应用程序启动,第一个活动启动服务,服务启动,第一个活动转发到第二个活动,第二个活动绑定到服务,...
处理程序处理程序:
...服务分发对服务处理程序的引用,第二个活动定义自己的处理程序,第二个活动现在可以使用服务处理程序直接与服务通信.要让服务处理程序知道它必须回复活动处理程序,Message对象中的msg.obj字段可用于设置"reply-to"处理程序(=活动中的处理程序).现在,在活动和服务之间成功建立双向通信.
Messenger至Messenger:
...服务分发对服务信使的引用,第二个活动定义自己的信使,第二个活动现在可以使用服务信使间接地与服务通信,服务信使将消息(消息对象)转换为Parcelable对象,然后重新转换Parcelable对象返回到一个新的(但相等的)Message对象,该对象被移交给服务的处理程序.要让服务信使知道它必须回复活动信使,可以使用活动中的信使设置msg.replyTo字段.双向通信成功设置.
问题":
当我只需要在我的应用程序中进行直接通信时,为什么我需要Messenger到Messenger设置?一个进程中的所有线程都可以通过使用其处理程序轻松进行通信(假设这些线程都已正确设置了自己的处理程序).我不希望信使首先展平两个处理程序之间共享的Message对象,除了"盲目地遵循Android服务教程"之外,这只是增加了开销而没有任何目的.
可能的方法:
启动服务,绑定一次,让服务分发一个本地绑定对象,在onServiceConnected()的ServiceConnection实现中设置活动中的服务处理程序,让活动将它存储在全局内存空间的某个地方,切换到第三,第四,第五个活动,你永远不必再在所有其他活动中绑定,因为所有活动都知道自己的处理程序(在每个活动中单独设置),并且可以从全局内存空间获取服务处理程序.如果服务需要响应第四个活动的处理程序,则第四个活动只是将自己的处理程序(fourthHanlder)添加到msg.obj字段,并且服务知道必须在何处发送回复消息.而已.
除此之外:活动在ui-thread/main-thread上运行,服务也在ui-thread/main-thread上运行,所以实际上它们是同一个线程的一部分,只有不同的处理程序.或者这是我的错误思考?
这意味着整个Messenger的东西只是同一进程中线程之间本地(内部)通信的额外开销!这是不需要的,除非Android系统在内部判断出信使是否在同一过程中相互通信并绕过消息的扁平化并跳过转换为Parcelable对象,以便信使实际上直接在处理程序之间进行排序(没有用户/程序员实际上已经意识到这一点.至少我不知道这个,如果这是我现在正在思考的那样真实的话).
我看到通过使用以下方法,只有三种方法可以在活动和服务之间创建异步通信:
我相信处理程序是线程之间进行通信的最快方式,后续是信使,最后是意图.这是真的???
请分享您对此事的见解和经验,即使我看到的不正确:)谢谢.
multithreading android handler android-intent android-service
我正在尝试为函数添加一个简单的处理程序readFile:
readHandler :: IOError -> IO ()
readHandler e
| isDoesNotExistError e = putStrLn "The file does not exist"
| otherwise = putStrLn "Something went wrong"
main = do
// stop executing if there is no file
contents <- (readFile "path.xml") `catch` readHandler
// generates [(x,y),(x,y)]
coordinates = parseXML contents
// I want to do something with the coordinates
nextFunction coordinates
Run Code Online (Sandbox Code Playgroud)
当我尝试编译这个时,我收到错误:
Couldn't match type `()' with `[Char]'
Expected type: IOError -> IO String
Actual type: IOError -> …Run Code Online (Sandbox Code Playgroud) 如何将处理程序从活动传递到服务?我正在尝试使用Handler更新有关蓝牙连接状态的活动UI,如下所示从服务类.
mHandler.obtainMessage(MenuActivity.MESSAGE_STATE_CHANGE, state, -1).sendToTarget();
Run Code Online (Sandbox Code Playgroud)
在活动中,我实现了这个:
public void handleMessage(Message msg) {
switch (msg.what) {
case MESSAGE_STATE_CHANGE:
if (true)
Log.i(TAG, "MESSAGE_STATE_CHANGE: " + msg.arg1);
switch(msg.arg1){
case BluetoothService.STATE_CONNECTED:
showToast("Connected to " + mConnectedDeviceName, Toast.LENGTH_SHORT);
break;
Run Code Online (Sandbox Code Playgroud)
我试图使用构造函数将处理程序从活动传递到服务,如下所示:
public BluetoothService(Handler handler, BluetoothAdapter mBluetoothAdapter) {
mAdapter = mBluetoothAdapter;
mState = STATE_NONE;
mHandler = handler;
}
Run Code Online (Sandbox Code Playgroud)
但是有一个错误显示无法实例化服务并发现该服务需要有一个公共的无参数构造函数.但是在删除构造函数之后,处理程序没有被传递到服务中.
如何解决这个问题呢?
有没有办法在循环中运行处理程序?我有这个代码,但没有工作,因为它不等待循环,但正确执行代码:
final Handler handler = new Handler();
final Runnable runnable = new Runnable() {
public void run() {
// need to do tasks on the UI thread
Log.d(TAG, "runn test");
//
for (int i = 1; i < 6; i++) {
handler.postDelayed(this, 5000);
}
}
};
// trigger first time
handler.postDelayed(runnable, 0);
Run Code Online (Sandbox Code Playgroud)
当然,当我移动延迟在循环外的帖子工作但它不迭代也不执行我需要的时间:
final Handler handler = new Handler();
final Runnable runnable = new Runnable() {
public void run() {
// need to do tasks on the UI thread
Log.d(TAG, …Run Code Online (Sandbox Code Playgroud)