Tag: 处理程序

UINavigationController“pushViewController:animated”的完成处理程序?

我正在使用UINavigationController创build一个应用程序来呈现下一个视图控制器。 用iOS5有一个新的方法来呈现UIViewControllers : presentViewController:animated:completion: 现在我问我为什么没有UINavigationController的完成处理程序? 有刚刚 pushViewController:animated: 是否有可能创build我自己的完成处理程序,如新的presentViewController:animated:completion:

如何从处理程序中删除所有callback?

我有一个来自我主要活动调用的子活动的处理程序 。 这个处理程序被子类用来postDelay一些Runnables,我不能pipe理它们。 现在,在onStop事件中,我需要在完成活动之前删除它们(不知何故,我称之为finish(),但它仍然一次又一次地调用)。 无论如何删除处理程序的所有callback?

Android – 按住重复动作

早上一切, 我会承认,我是刚开发的新手,并试图在Android上工作。 我一直在试图search'networkingfind如何实现一些“保持button重复操作”的build议 – 我已经创build了一个button自定义数字键盘,并希望像退格般的行为。 到目前为止,我曾经呼吁过一个没有编码过Android的朋友,但是做了很多C#/ Java,似乎知道他在做什么。 下面的代码工作得很好,但我觉得它可以做得更整齐。 我很抱歉,如果我错过了点点滴滴,但希望这解释了我的方法。 我认为onTouchListener是好的,但线程处理的方式感觉不对。 有没有更好或更简单的方法来做到这一点? 谢谢, 中号 public class MyApp extends Activity { private boolean deleteThreadRunning = false; private boolean cancelDeleteThread = false; private Handler handler = new Handler(); public void onCreate(Bundle icicle) { super.onCreate(icicle); //May have missed some declarations here… Button_Del.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent […]

CalledFromWrongThreadException:只有创build视图层次结构的原始线程才能触及视图

我在Android中遇到以下错误: CalledFromWrongThreadException;:只有创build视图层次结构的原始线程可以触及其视图 当我尝试在我的Activity中更新Textview时,似乎发生了这种情况,更新TextView的调用是在我的Activity中发生的,但仍然出现上述错误。 我有这样的: onCreate() – 设置button和文本视图。 onStateChange() – 一个关于状态改变的通知的监听器,当这个监听器得到通知时,如果改变TextView来说一些不同的文本。 当我得到一个新的文本的通知我尝试更改TextView,如下所示: ((TextView)findViewById(R.id.title)).setText("Some Text"); 但是我得到上面的错误。 从谷歌search它,看来我应该使用处理程序来更改TextView或可能使用AsyncTask? 任何人都可以解释哪一个会更好用,为什么? 编辑:添加代码片段: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.my); getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.my_title); ((TextView)findViewById(R.id.time)).setText("Hello Text"); findViewById(R.id.keyboardimage).setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent dialIntent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:")); startActivity(dialIntent); dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN,KeyEvent.FLAG_SOFT_KEYBOARD)); dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_BACK)); } }); } //CallBacks from running […]

Timertask或Handler

嗨,我有一个快速的问题。 假设我想每10秒钟执行一些操作,并且不一定需要更新视图。 问题是:是否更好(我的意思是更有效和有效)使用计时器与时间任务像这里: final Handler handler = new Handler(); TimerTask timertask = new TimerTask() { @Override public void run() { handler.post(new Runnable() { public void run() { <some task> } }); } }; timer = new Timer(); timer.schedule(timertask, 0, 15000); } 或者只是一个postdelayed的处理程序 final Handler handler = new Handler(); final Runnable r = new Runnable() { […]

TimerTask与Thread.sleep vs Handler postDelayed – 每N毫秒最准确的调用函数?

每N毫秒调用一个函数最准确的方法是什么? 线程与Thread.sleep 的TimerTask 处理器postDelayed 我使用Thread.sleep修改了这个例子 ,它不是很准确。 我正在开发一个音乐应用程序,将在给定的BPM播放声音。 我知道创build一个完全准确的节拍器是不可能的,我不需要 – 只是寻找最好的方法来做到这一点。 谢谢

从服务访问UI线程处理程序

我正在尝试一些新的东西,我需要访问UI线程的处理程序。 我知道以下几点: UI线程有自己的处理程序和循环 任何消息将被放入UI线程的消息队列中 循环者拾取事件并将其传递给处理程序 处理程序处理消息并将特定事件发送到UI 我想有我的服务,必须获得UI线程处理程序,并将消息放入此处理程序。 所以这个消息将被处理,并将发布到用户界面。 这里的服务将是一个正常的服务,将由一些应用程序启动。 我想知道这是否可能。 如果是这样,请build议一些代码片段,以便我可以尝试。 问候Girish

用Java创build一个自定义事件

我想在Java中这样做,但我不知道的方式: 当事件“对象1说'你好'”发生,则对象2通过说“你好”来响应该事件。 有人可以给我一个提示或示例代码?

如何在Android中延迟后调用方法

我想在指定的延迟之后能够调用下面的方法。 在目标c中有这样的东西: [self performSelector:@selector(DoSomething) withObject:nil afterDelay:5]; 有没有在Java与Android的这种方法的等价物? 例如,我需要能够在5秒后调用一个方法。 public void DoSomething() { //do something here }

当ng-repeat完成时调用一个函数

我试图实现的基本上是“在重复完成渲染”处理程序。 我能够检测到什么时候完成,但我不知道如何从中触发function。 检查小提琴: http : //jsfiddle.net/paulocoelho/BsMqq/3/ JS var module = angular.module('testApp', []) .directive('onFinishRender', function () { return { restrict: 'A', link: function (scope, element, attr) { if (scope.$last === true) { element.ready(function () { console.log("calling:"+attr.onFinishRender); // CALL TEST HERE! }); } } } }); function myC($scope) { $scope.ta = [1, 2, 3, 4, 5, 6]; […]