在我的应用程序中,我得到了一个 thrad,它每 60 秒检查一次来自网络服务(在 onCreate() 中定义)的数据:
new Thread(new Runnable() {
@Override
public void run() {
while (true) {
try {
Thread.sleep(PERIOD);
if(condition) do_something();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}).start();
Run Code Online (Sandbox Code Playgroud)
另外,在用户不活动一段时间后,我得到了一个执行方法的处理程序:
private Handler disconnectHandler = new Handler();
private Runnable disconnectCallback = new Runnable() {
@Override
public void run() {
do_something_else();
}
};
public void resetDisconnectTimer(){
disconnectHandler.removeCallbacks(disconnectCallback);
disconnectHandler.postDelayed(disconnectCallback, TIMEOUT);
}
@Override
public void onUserInteraction() {
super.onUserInteraction();
resetDisconnectTimer();
}
Run Code Online (Sandbox Code Playgroud)
现在我遇到了在 PERIOD 之后调用 onUserInteraction() 的问题,而不仅仅是在 TIMEOUT 之后。有什么想法可以让两者都工作吗?
提前致谢。
什么是最好的检测方法 CtrlV在Silverlight中 +?
我想检测Ctrl+ V,以获得对剪贴板的访问权限.
尽管我在python中写道,但我认为抽象概念对我和其他人来说更有趣.如果你喜欢,那么伪代码请:)
我有一个列表,其中包含我的一个课程中的项目.让我们在这里用字符串和数字来做,这没关系.它嵌套到任何深度.(它实际上不是一个列表,而是一个基于列表的容器类.)
例如: [1,2,3,['a','b','c'] 4 ['d','e',[100,200,300]] 5,['a','b' ,'c'],6]
请注意,['a','b','c']实际上都是同一个容器.如果你改变一个,你改变另一个.可以编辑容器和项目,插入项目和最重要的容器可以多次使用.为了避免冗余,它不可能使列表变平(我认为!),因为你无法在一个容器中插入项目,它会自动出现在所有其他容器中.
问题:针对前端(刚刚与蟒蛇"CMD"命令行模块),我想通过这个结构与游标,它总是指向当前项目,以便它可以读取或编辑导航.光标可以左右(用户的观点),并且应该表现得像列表不是嵌套列表而是扁平列表.
对于人类而言,这非常容易.你只是假装在上面的这个列表中,子列表不存在,只是从左到右依次走.
例如,如果您在上面的列表中处于"3"的位置并向右移动,则将"a"作为下一项,然后是"b","c",然后是"4"等.或者如果您从右边开始"300"你接下来会得到"5".
向后:如果你从"6"左转,那么下一个是'c'.如果你从"5"左转到它的"300".
那么我原则上该如何做呢?我有一种方法,但它的错误,问题已经很长了,我担心大多数人都不会读它:(.我可以稍后发布.
PS即使它很难抗拒:这个问题的答案不是"你为什么要这样做,为什么要用这种方式组织你的数据,为什么不先把我的想法变得平淡无味" ?问题正是我在这里所描述的,没有别的.数据是由问题的本质构成的.
我正在尝试为我的imageView(下面的代码中的maskPreview)创建移动功能,以便用户可以在屏幕周围移动maskPreview中包含的图片.这是触摸开始和触摸移动的代码:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
if ([touches count]==1) {
UITouch *touch= [touches anyObject];
originalOrigin = [touch locationInView:maskPreview];
}
}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
if ([touches count]==1) {
UITouch *touch = [touches anyObject];
CGPoint lastTouch = [touch previousLocationInView:self.view];
CGFloat movedDistanceX = originalOrigin.x-lastTouch.x;
CGFloat movedDistanceY = originalOrigin.y-lastTouch.y;
[maskPreview setFrame:CGRectMake(maskPreview.frame.origin.x+movedDistanceX, maskPreview.frame.origin.y + movedDistanceY, maskPreview.frame.size.width, maskPreview.frame.size.height)];
}
}
Run Code Online (Sandbox Code Playgroud)
但我从应用程序得到一些奇怪的回应.我没有限制图像视图可以移动多远,即防止它移出屏幕,但即使这是一个小动作,我的图像视图也会疯狂消失.
非常感谢所有的帮助
安全问题: 我现在不知道它是如何发生的,但是这些问题的读者想出这个问题的解决方案是安全威胁.所以请记住,我感兴趣的所有数据都是测量用户/活动的时间.就这样.用户做了什么 - 我根本不感兴趣!
我需要的是非常简单的概念,但我找不到解决方案.我想运行一个进程(在后台)并有一个用户交互的监听器.
所以,用户触摸屏幕 - >我的方法被触发.
用户解锁手机 - >我的方法被触发.
物理键盘上的用户类型 - >我的方法被触发.
所以简而言之,当手机仍在桌面上时,我的方法不会被触发:-)请注意,交互是与整个手机,而不是我的应用程序,我不感兴趣用户输入字母"K",我是甚至没有兴趣用户输入的东西,我关心的是用户以某种方式使用手机.
顺便说一句.用户走路时听音乐的情况(口袋里的电话) - 这不是互动.
我正在寻找的是一个触发器 - 类似于INTERACTION_DETECTED,或者(相反地)一个设置的回调方法,reportInactiveUser(10*1000)如果用户在10秒内处于非活动状态,它将被调用.
问题如何检测用户交互?
目的:测量手动使用手机的时间.
我发现BatteryStatsImpl可以保存我需要的数据.它的实例是保留的BatteryStatsService,然而它不允许任何访问它,只有IBatteryStats它只有一个有趣的方法 - getStatistics并且输出不包括用户活动计数器(或者它们都是零;我设置所有权限).所以,到目前为止 - 运气不好.
所有的调用都必须通过反思来进行,因为无论如何这些类都不可用;-).
在我的项目中的一个视图中,我想禁用除一个按钮之外的所有视图,所以我正在使用
[self.view setUserInteractionEnabled:NO];
Run Code Online (Sandbox Code Playgroud)
由于我有很多组件,因此很难启用和禁用每个组件,因此我正在使用它。
但我想启用一个按钮,有很多按钮。
我正在处理用户行为项目.根据用户交互,我得到了一些数据.有一个很好的序列,随着时间的推移平稳地增加和减少.但是差异很小,非常糟糕.请参考下图:

你也可以在这里找到数据:
2.0789 2.09604 2.11472 2.13414 2.15609 2.17776 2.2021 2.22722 2.25019 2.27304 2.29724 2.31991 2.34285 2.36569 2.38682 2.40634 2.42068 2.43947 2.45099 2.46564 2.48385 2.49747 2.49031 2.51458 2.5149 2.52632 2.54689 2.56077 2.57821 2.57877 2.59104 2.57625 2.55987 2.5694 2.56244 2.56599 2.54696 2.52479 2.50345 2.48306 2.50934 2.4512 2.43586 2.40664 2.38721 2.3816 2.36415 2.33408 2.31225 2.28801 2.26583 2.24054 2.2135 2.19678 2.16366 2.13945 2.11102 2.08389 2.05533 2.02899 2.00373 1.9752 1.94862 1.91982 1.89125 1.86307 1.83539 1.80641 1.77946 1.75333 1.72765 1.70417 1.68106 1.65971 1.64032 1.62386 1.6034 1.5829 …
我正在使用pyTelegramBotAPI框架在python上构建一些电报机器人。而且我遇到了用户输入问题。我需要在某些漫游器消息后保存用户输入(可以是任何文本)。例如:
Bot:-请描述您的问题。
用户:-我们的计算机无法正常工作。
然后,我需要将“我们的计算机无法工作”这一文本保存到某个变量中,然后继续下一步。这是我的代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import telebot
import constants
from telebot import types
bot = telebot.TeleBot(constants.token)
@bot.message_handler(commands=['start'])
def handle_start(message):
keyboard = types.InlineKeyboardMarkup()
callback_button = types.InlineKeyboardButton(text="Help me!", callback_data="start")
keyboard.add(callback_button)
bot.send_message(message.chat.id, "Welcome I am helper bot!", reply_markup=keyboard)
@bot.inline_handler(lambda query: len(query.query) > 0)
def query_text(query):
kb = types.InlineKeyboardMarkup()
kb.add(types.InlineKeyboardButton(text="Help me!", callback_data="start"))
results = []
single_msg = types.InlineQueryResultArticle(
id="1", title="Press me",
input_message_content=types.InputTextMessageContent(message_text="Welcome I am helper bot!"),
reply_markup=kb
)
results.append(single_msg)
bot.answer_inline_query(query.id, results)
@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call): …Run Code Online (Sandbox Code Playgroud) 如何允许用户“暂停当前管道并返回到命令提示符”,然后在 powershell 脚本中恢复?
我在一篇有关 Powershell 中的用户交互的博客文章中偶然发现了这一行
$suspend = New-Object System.Management.Automation.Host.ChoiceDescription "&Suspend", "Pause the current pipeline and return to the command prompt. Type ""exit"" to resume the pipeline."
Run Code Online (Sandbox Code Playgroud)
这是提示中的一个模拟选项,模仿本机命令(Remove-Item)的外观。你瞧:该命令实际上实现了该行为。进行了快速的 Google 搜索,我没有在脚本中找到实现。
我是iPhone开发的新手,我需要帮助理解下面的内容,因为我可以使用以下内容创建newView
UIView *newView=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 80, 30)];
newView.backgroundColor=[UIColor clearColor];
UIButton *newViewBtn=[UIButton buttonWithType:UIButtonTypeRoundedRect];
newViewBtn.frame = CGRectMake(newView.frame.origin.x+5,
newView.frame.origin.y+5,60,20);
[newView addSubview:newViewBtn];
[self.view addSubview:newView];
Run Code Online (Sandbox Code Playgroud)
上面的代码工作没有任何问题.但是当我尝试使用以下内容创建视图时,视图创建正常,但视图上的按钮不可单击.
int randNumX = arc4random() % 150;
int randNumY = arc4random() % 200;
UIView newView=[[UIView alloc]init];
newView.frame =CGRectMake(randNumX, randNumY, 80, 30);
newView.backgroundColor=[UIColor clearColor];
UIButton *newViewBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
newViewBtn.frame = CGRectMake(newView.frame.origin.x+5
,newView.frame.origin.y+5,60,20);
[newView addSubview:newViewBtn];
[self.view addSubview:newView];
Run Code Online (Sandbox Code Playgroud)
如果更改以下代码,还有另一种情况
newViewBtn.frame = CGRectMake(newView.frame.origin.x+5
,newView.frame.origin.y+5,60,20);
Run Code Online (Sandbox Code Playgroud)
使用以下代码崩溃的应用程序
newViewBtn.frame =CGRectMake(randNumX+5,randNumY+5,60,20);
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激,提前感谢.
我已经添加了以下代码
newViewBtn addTarget:self action:@selector(btnclick:)forControlEvents:UIControlEventTouchUpInside];
-(void)btnclick:(id)sender
{
//my code
}
Run Code Online (Sandbox Code Playgroud)
它在第一种情况下工作:
我主要关心的是当newView被绘制时,为什么这个视图上的按钮不可点击
user-interaction ×10
android ×2
ios ×2
python ×2
uibutton ×2
c++ ×1
cocoa-touch ×1
copy-paste ×1
cursor ×1
events ×1
navigation ×1
nested-lists ×1
objective-c ×1
postdelayed ×1
powershell ×1
sleep ×1
telegram-bot ×1
uiimageview ×1