标签: handler

C#事件删除语法

我对在C#中删除事件处理程序的语法感到困惑.

Something += new MyHandler(HandleSomething); // add
Something -= new MyHandler(HandleSomething); // remove
Run Code Online (Sandbox Code Playgroud)

"new"在每一行上创建一个新对象,因此您添加一个对象,然后要求它删除另一个对象.

这可以起到什么作用?
从语法来看肯定不明显.

c# events handler

8
推荐指数
2
解决办法
1197
查看次数

使用Handler Android

哪个是使用处理程序的更好方法.任何优点.我遇到的所有示例似乎都给出了内联版本.

Handler.Callback在类中使用implements 并实现接口方法.

要么

使用内联代码版本

private Handler mHandler = new Handler(){ ....};
Run Code Online (Sandbox Code Playgroud)

android handler

8
推荐指数
1
解决办法
2万
查看次数

Android异步,处理程序还是计时器?

每隔5秒,我想调用我的web服务并获取文本(而不是图像),然后在我的ImageAdapter中显示它.实现这一目标的最佳方法是什么?

android timer handler android-asynctask

8
推荐指数
2
解决办法
8623
查看次数

Android:从静态Handler类调用非静态方法

鉴于此代码:

public class MainActivity extends FragmentActivity implements ActionBar.TabListener {

public static final int MESSAGE_NOT_CONNECTED = 1;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_layout);
}

// -------------------------------------------------
public final void setStatus(int Rid) {
    final ActionBar actionBar = getActionBar();
    actionBar.setSubtitle(Rid);
}

// -------------------------------------------------
static Handler mHandler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        switch (msg.what) {
        case MESSAGE_NOT_CONNECTED:
            setStatus(R.string.title_not_connected);
            break;
        }
    }
}
}
Run Code Online (Sandbox Code Playgroud)

我收到编译错误:无法对非静态方法setStatus(int)进行静态引用...

这是有道理的,因为setStatus()中的getActionBar()是一个非静态方法.

由于警告,我使Handler类保持静态:此Handler类应该是静态的,否则可能会发生泄漏.

问题:如何从静态处理程序中正确访问setStatus()方法?

编辑:新的处理程序代码是答案.

static class hHandler extends Handler {
    private final WeakReference<MainActivity> …
Run Code Online (Sandbox Code Playgroud)

android handler android-actionbar

8
推荐指数
1
解决办法
8191
查看次数

ScrollView内容更新

我有一个以编程方式生成ScrollViewTextView内部.我希望TextView不时更新文本,有些人已经实现了处理函数来更新TextViewGUI元素.这似乎正确地调用/工作.

但是,目前我发现实际获得TextView显示附加信息的唯一方法是调用:

consoleText.append("New text to add to TextView");
// then:
myScrollView.removeView(myTextView);
myScrollView.addView(myTextView);
Run Code Online (Sandbox Code Playgroud)

这不是特别优化,并且想知道如何我可以刷新内容ScrollView以显示我新添加的信息......

也:

invalidate();
postvalidate();
Run Code Online (Sandbox Code Playgroud)

似乎没有做任何事情 - TextView对象中有新文本(查看调试)除非我调用add/remove函数,否则它不会将其绘制到屏幕上.

感谢您提供的任何信息/帮助

FR

java android handler scrollview textview

8
推荐指数
1
解决办法
1万
查看次数

FBDialogs presentShareDialogWithParams回调处理程序永远不会被调用

我正在使用FBDialogs在Facebook上分享.

Facebook共享工作正常,但处理程序永远不会被调用(我在第一行放置断点)

我的SDK是通过CocoaPods安装的

pod 'Facebook-iOS-SDK',         '3.9.0'
Run Code Online (Sandbox Code Playgroud)

这是代码,几乎是facebook开发页面上的例子.我正在使用ios7测试iPod.

// If the Facebook app is installed and we can present the share dialog
if ([FBDialogs canPresentShareDialogWithParams:params]) {
    // Present the share dialog

    [FBDialogs presentShareDialogWithParams:params
                              clientState:nil
                                    handler:^(FBAppCall *call, NSDictionary *results, NSError *error) {
                                        //never gets here
                                        if(error) {
                                            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
                                                                                            message:[NSString stringWithFormat: @"O comparilhando não foi bem sucedido. %@",error.description]
                                                                                           delegate:nil
                                                                                  cancelButtonTitle:@"OK"
                                                                                  otherButtonTitles:nil];
                                            [alert show];

                                        } else {
                                            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Sucesso"
                                                                                            message:@"O compartilhando foi bem sucedido"
                                                                                           delegate:nil …
Run Code Online (Sandbox Code Playgroud)

sdk facebook callback handler ios

8
推荐指数
1
解决办法
1945
查看次数

Androids Handler.post,究竟发生了什么

几天以来,我试图弄清楚如果我执行代码会发生什么

void function(){

  //somePreExecutionCode
  new Handler().post(new Runnable(){
    @Override 
    public void run(){
       //someCode
    }
  });
}
Run Code Online (Sandbox Code Playgroud)

它似乎没有阻止UI,所以调用function()的按钮在someCode完成之前不会卡在点击的位置.但是如果somePreExecutionCode启动了progressBar,那么当someCode完成时,progressBar会在完全相同的时刻显示.我知道,有AsyncTasks,但还有其他可能吗?

最重要的是什么

new Handler().post 
Run Code Online (Sandbox Code Playgroud)

View.post
Run Code Online (Sandbox Code Playgroud)

android handler runnable

8
推荐指数
2
解决办法
6499
查看次数

hapi在发送响应之前设置标头

在hapi处理程序中,我尝试在发送回视图之前在代码中设置我的响应的标头.

reply().header('cache-control', 'no-cache');

{....}

reply.view('myView', myContext);
Run Code Online (Sandbox Code Playgroud)

你我必须使用这种hold方法吗?在这种情况下,如何在渲染视图时重用响应?

谢谢你的帮助.

javascript header handler node.js hapijs

8
推荐指数
4
解决办法
2万
查看次数

JMSSerializerBundle上的自定义处理程序将被忽略

我正在尝试为JMS Serializer Bundle使用自定义处理程序

class CustomHandler implements SubscribingHandlerInterface
{
    public static function getSubscribingMethods()
    {
        return array(
            array(
                'direction' => GraphNavigator::DIRECTION_SERIALIZATION,
                'format' => 'json',
                'type' => 'integer',
                'method' => 'serializeIntToJson',
            ),
        );
    }

    public function serializeIntToJson(JsonSerializationVisitor $visitor, $int, array $type, Context $context)
    {
         die("GIVE ME SOMETHING");
    }
}
Run Code Online (Sandbox Code Playgroud)

这什么都不做,也不会死.这就是我注册处理程序的方式

$serializer = SerializerBuilder::create()
    ->configureHandlers(function(HandlerRegistry $registry) {
        $registry->registerSubscribingHandler(new MyHandler());
    })
    ->addDefaultHandlers()
    ->build();

$json = $serializer->serialize($obj, 'json');
Run Code Online (Sandbox Code Playgroud)

我的处理程序从未被调用过,我无法操纵序列化数据.

serialization handler symfony jmsserializerbundle

8
推荐指数
2
解决办法
4105
查看次数

onClick优先于javascript中的addEventListener?

现在,我有一个事件监听器,可以监听屏幕上的点击.屏幕上还有一个按钮.当我点击按钮时,事件监听器将在onclick之前执行.有没有办法让onclick有更高的优先级?

<script>
document.body.addEventListener('click',function(){alert('1');}, false);

function clicked() { 
    alert('2');
}
</script>
<button onclick="clicked()">Click this</button>
Run Code Online (Sandbox Code Playgroud)

单击该按钮也会触发事件处理程序.1显示在2之前,当我点击按钮时.我想要先显示2.

javascript onclick handler addeventlistener

8
推荐指数
1
解决办法
7738
查看次数