我正在开发和应用程序,用户必须先登录才能使用它.我自定义了标题栏并在其中放置了一个注销按钮,以便用户可以随时注销,并使用其他帐户登录.然后应用程序应再次显示登录活动.
这很好,但我的问题是后退按钮.当用户注销时,登录活动显示,但如果他按下,则应用程序返回上一页,使用户能够再次使用该活动,即使没有登录也是如此.
我通过onCreate()这种方式设置了所有活动:
public void onCreate(Bundle savedInstanceState) {
// Activity code
checkLogin();
}
Run Code Online (Sandbox Code Playgroud)
而且checkLogin():
if (GlobalContext.getCurrentUser() == null) {
Intent i = new Intent(this, LoginActivity.class);
startActivityForResult(i, GlobalContext.REQUEST_LOGIN);
}
Run Code Online (Sandbox Code Playgroud)
然而,这不应该像它应该的那样工作,我的应用程序有时会在我按下时崩溃,有时它会像我说的那样返回到之前的活动,有时它确实有效.
checkLogin()每次活动(重新)开始时,如何进行调用?
或者还有另一种更好的方法来做我想要的事情?
编辑:
基于@Gabriel的答案和SDK参考中的以下图表,我移动checkLogin()了onResume()方法而不是onCreate解决我的问题.

我有一个服务器设备配置,我需要使用UDP更改装备日期配置.服务器是用Java和设备编写的,用Delphi编写.
所以,数据流是这样的:
Java server (Java date) -> UDP (integer date) -> Delphi equipment (Delphi date)
问题是,当我将日期作为整数传递时,java会计算1970年的毫秒数和德尔福数秒.我通过以下日期:today.getTime() / 1000但是设备将此理解为2008年的日期,当时我们在2012年.
我可以更改Java代码,但设备是第三方,我无法访问它的源代码.
Java和Delphi日期解析之间存在差异,允许这种差异吗?
编辑: 感谢MДΓΓБДLL我发现我被乘以1000,而不是由它划分,我现在有一个美好的约会,但仍然是错误的(2033年被somewhen,现在是2008年).
情况如下:
我有一个用户将运行的预定GPS路线.该路线有一些检查点,用户应该通过所有这些检查站(将它们视为赛车游戏检查点,以防止用户采取快捷方式).我需要确保用户通过所有检查点.我想确定一个将在检查点半径内考虑的区域,但我不希望它只是一个径向区域,它应该是一个考虑路径形式的区域.不明白吗?我也没有.看看这张画得很糟糕的图片,以便更好地理解它:

黑线表示预定路径,蓝色球表示检查点,蓝色多边形表示所需区域.绿线是一个更精确的用户,红线是一个不太准确的用户(一个醉酒的家伙可能会驾驶?).两条线都应该在多边形内部,但是完全跳过路线的用户不应该.
我已经在这里看到一个函数来检查用户是否在这样的多边形内,但我需要知道如何计算多边形.
有什么建议?
编辑:
我正在考虑使用简单的distanceTo()函数来绘制一个假想的圆圈并检查用户是否在那里.这很好,因为实现和理解非常简单,而且很糟糕,因为为了确保最敏感的用户在检查点通过,我需要一个很大的半径,使正确的用户比预期更快地进入检查点区域.
只是让你们更好地了解情况,这是一个应该用于交通(汽车或公共汽车)的应用程序,检查点应该是划分你的路线的地标或地点,例如,交通堵塞开始的地方或停止.
我有一个Rails控制器,它对数据库进行运行状况检查,如下所示:
def health_check
begin
status = ActiveRecord::Base.connected? ? 'UP' : 'DOWN'
rescue
status = 'DOWN'
end
render text: status
end
Run Code Online (Sandbox Code Playgroud)
我正在尝试为此创建一个RSpec控制器规范,正响应和负响应的规范都起作用,但是当我尝试测试救援块时,RSpec似乎忽略了它:
RSpec.describe(HealthCheckController) do
context 'When the check raises an exception' do
before :each do
allow(ActiveRecord::Base).to receive(:connected?).and_raise(OCIException) # Using Oracle
end
it 'should render text DOWN' do
# First attempt
get :health_check
expect(response.body).to eq 'DOWN'
# Second attempt
expect { get :health_check }.to raise_error
expect(response.body).to eq 'DOWN'
end
end
end
Run Code Online (Sandbox Code Playgroud)
我在it上面的块中(分别)使用了这两个代码尝试了规范。
首先,RSpec失败了:
Failure/Error: get :health_check
OCIException:
OCIException
Run Code Online (Sandbox Code Playgroud)
第二,它也失败了,而是显示了更多“熟悉的”消息:
Failure/Error: …Run Code Online (Sandbox Code Playgroud) 当我尝试使用Prawn gem for Rails 生成文档时,我遇到了问题
我要做的是为我的pdf设置一个可变高度,因此根据数据库中的一些查询,PDF高度将会改变.我这样做是因为我需要单页PDF文档.
目前,我的代码如下所示:
pdf = Prawn::Document.new(page_size: [297.64, 419.53], margin: 0)
....
data = [ ["Header1", "Header2", "Header3", "Header4", "Header5", "Header6"] ]
// here is the variable data
cart.cart_products.each do |cp|
arr = [
cp.product_code,
cp.product_description,
cp.amount,
cp.product_metric,
cp.product_unit_value,
cp.total_value
]
data.push(arr)
end
// populating the table with data
pdf.table(data, :cell_style => {:border_width => 0}, :column_widths => [45, 80, 30, 42.36, 50, 50]) do |table|
table.row(0).border_width = 0.1.mm
table.row(0).font_style = :bold
table.row(0).borders = [:bottom]
end
.... …Run Code Online (Sandbox Code Playgroud) 我的一堂课遇到了问题.我有这两个类,GameApp和Simulation:
GameApp.h
#pragma once
#include "Simulation.h"
class Simulation;
class GameApp {
static GameApp *instance;
public:
~GameApp(void);
static GameApp *initializeContext(const char *gameTitle, const int windowWidth, const int windowHeight);
//void setSimulation(Simulation &simulation) { *(this->simulation) = simulation; }
Simulation *getSimulation() { return simulation; }
static const int TARGET_FPS = 50; // Frames per second
private:
GameApp(void);
Simulation *simulation;
double frameIntervalList[TARGET_FPS]; // A list containing the time to render the last 60 frames
// Other stuff that doesn't matter
Run Code Online (Sandbox Code Playgroud)
Simulation.h
#pragma once
#include <vector> …Run Code Online (Sandbox Code Playgroud) 如何在Rails 3应用程序上禁用控制台输出?更具体地说,我想至少禁用Mailer输出,输出整个电子邮件内容,包括图片,使动作处理更慢(发送电子邮件需要大约10秒).
PS:我认为经济放缓是因为输出的,如果可以从其他来源,如缓慢的SMTP服务器(这是Gmail的自动取款机,所以没有.)或别的东西一样,请让我知道.