在Crashlytics的官方文档中,它显示了在活动的onCreate方法中初始化Fabric。我想让Crashlytics报告整个应用程序崩溃,将初始化调用置于应用程序级别是否有不利之处?进行此更改是否足以接收整个应用程序中的崩溃报告?
文档中的示例:
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Fabric.with(this, new Crashlytics());
setContentView(R.layout.activity_main);
}
}
Run Code Online (Sandbox Code Playgroud)
我想怎么做:
public class MyApplication extends Application {
@Override
public void onCreate() {
Fabric.with(this, new Crashlytics());
super.onCreate();
}
}
Run Code Online (Sandbox Code Playgroud)
在我的测试中,这似乎可以达到我的目的,但是我想确保它不是反模式,因为我似乎找不到关于它的任何文档。
我在我的Android应用程序中有一个简单的表单,我使用Android Saripaar进行验证,其中一个字段是电子邮件地址,根据文档中的第一个示例,它应该看起来像这样:
@NotEmpty
@Email
private EditText emailEditText;
Run Code Online (Sandbox Code Playgroud)
但是我希望它是一个可选字段,所以我省略了@NotEmpty注释:
@Email
private EditText emailEditText;
Run Code Online (Sandbox Code Playgroud)
但是当我把它留空时,可以理解为将其标记为无效的电子邮件地址.是否可以在不编写自定义规则的情况下将此字段设为可选字段?
我在 Celery 中有一个速率限制任务,但 Flower 中显示的结果使它看起来好像它正在立即处理一堆任务,然后遵守速率限制。为什么会发生这种情况?我需要做些什么来确保它从一开始就遵守速率限制吗?
@shared_task(rate_limit="4/m")
def my_task(a,b):
...
Run Code Online (Sandbox Code Playgroud)
...
my_task.apply_async((x, y,),)
Run Code Online (Sandbox Code Playgroud)