看起来检测Moto 360屏幕形状的常用方法无法正常工作.
我知道有报道说windowInset.isRound()在Moto 360 中返回错误.
目前我的代码如下
WatchViewStub viewStub = new WatchViewStub(this);
viewStub.setRoundLayout(com.pizzaentertainment.weatherwatchface.R.layout.bau);
viewStub.setRectLayout(com.pizzaentertainment.weatherwatchface.R.layout.bau_rect);
viewStub.setOnApplyWindowInsetsListener( new View.OnApplyWindowInsetsListener() {
@Override
public WindowInsets onApplyWindowInsets(View view, WindowInsets windowInsets) {
Log.d("ISWHAT?", "ASD" +windowInsets.isRound());
return windowInsets;
}
});
addContentView(viewStub, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));
viewStub.setOnLayoutInflatedListener(new WatchViewStub.OnLayoutInflatedListener() {
@Override
public void onLayoutInflated(WatchViewStub watchViewStub) {
Log.d("INFLATED", "INFLATED");
}
});
Run Code Online (Sandbox Code Playgroud)
我的主要问题是onApplyWindowInsets我的LG G手表和三星Galaxy Gear Live都不会被调用.我用360用户进行了测试,根据测试,该方法也没有在他的设备上调用.
OnApplyWindowInsetListener不被召唤?windowInset.isRound()在Moto 360上返回false?Build.MODEL?我正在尝试用rxJava实现这个工作流程,但我确定我是在滥用还是做错了.
这是我完整的代码片段.
public class LoginTask extends BaseBackground<LoginResult> {
private static CachedLoginResult cachedLoginResult = new CachedLoginResult();
private XMLRPCClient xmlrpcClient;
private UserCredentialsHolder userCredentialsHolder;
@Inject
public LoginTask(XMLRPCClient client, UserCredentialsHolder userCredentialsHolder) {
this.xmlrpcClient = client;
this.userCredentialsHolder = userCredentialsHolder;
}
@Override
public LoginResult performRequest() throws Exception {
return UserApi.login(
xmlrpcClient,
userCredentialsHolder.getUserName(),
userCredentialsHolder.getPlainPassword());
}
@Override
public Observable<LoginResult> getObservable() {
return cachedLoginResult.getObservable()
.onErrorResumeNext(
Observable.create(
((Observable.OnSubscribe<LoginResult>) subscriber -> {
try {
if (!subscriber.isUnsubscribed()) {
subscriber.onNext(performRequest()); // actually performRequest
}
subscriber.onCompleted();
} catch (Exception e) …Run Code Online (Sandbox Code Playgroud) 我有一个Express应用程序.我想跟踪单个请求所做的所有记录.
Apache有一个名为的模块mod_unique_id,它在请求头中注入一个包含唯一哈希的特殊模块.我想在记录(任何东西)时使用这样的哈希.
例如,如果一个用户被apache分配了unique_id值"abcdefg"和我的代码中的某个地方(控制器,模型或任何东西),我生成一个调试日志,我希望每个日志条目都附加"abcdefg".
在我脑海中浮现的唯一想法是创建一个记录器实例app.use(),并将该记录器实例传递给所有需要的函数(模型,库等)以生成正确的响应.
不幸的是,这将导致我重写大量代码,让旧函数接受这个新的记录器实例.
有没有人知道一个更好的方法,每个"请求"有一个"记录器"实例,可以通过某种方式访问,而不会将这个"按请求创建的记录器"传递给任何东西?
PS:我目前正在使用winston日志
我遇到了关于proguard和一些反思的问题.
Myclass.java
package not.obfuscated
class MyClass {
public List<InnerClass> childs;
}
Run Code Online (Sandbox Code Playgroud)
InnerClass.java
package not.obfuscated
class InnerClass {
//.somestuff
}
Run Code Online (Sandbox Code Playgroud)
在proguard.cfg里面我有:
-keep class not.obfuscated.** {*;}
Run Code Online (Sandbox Code Playgroud)
在另一个类中,我设法获取MyClass.childs字段的"Field"实例,然后尝试获取getGenericType以确定列表括号内的哪个类(<InnerClass>)
出于日志记录的目的,我做了以下Log.d代码(字段是表示MyClass.childs的Field实例):
Log.d("FIELD", field.getName()+" generic type: "+ field.getGenericType()+ " class: "+ field.getGenericType().getClass().getName());
Run Code Online (Sandbox Code Playgroud)
输出如下(第2行):

如您所见,field.getGenericType.toString()可能是正确的,但是当我要求该类时,它返回java.lang.Class.事实上,当我这样做时,事后几行:
ParameterizedType listType = (ParameterizedType) field.getGenericType();
Run Code Online (Sandbox Code Playgroud)
我收到一个ClassCastException:
java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType
Run Code Online (Sandbox Code Playgroud)
我坚信这是由于proguard,但据我所知,我已经排除了not.obfuscated包中的所有类.最后一次尝试我也插入了行-keep类java.lang.List(显然没有发生).
我想创建一个简单的应用程序,在android中的全局快速搜索框中显示信息.
我确实按照一些方法进行了操作,但是我无法在菜单"设置 - >搜索 - >可搜索项目"中获取我的应用程序,这是让用户在QSB中检查他想要的建议的菜单.
我可以在这里附加清单和可搜索的xml文件.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.andreabaccega.marketsearch" android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Init" android:label="LUPO">
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data android:name="android.app.searchable"
android:resource="@xml/searchable" />
</activity>
<provider android:name="com.andreabaccega.marketsearch.SuggestionProvider"
android:authorities="com.andreabaccega.marketsearch.SuggestionProvider" android:syncable="false"/>
</application>
<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.GET_ACCOUNTS"></uses-permission>
<uses-permission android:name="android.permission.USE_CREDENTIALS"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest>
Run Code Online (Sandbox Code Playgroud)
这是searchable.xml文件
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="Teasdst"
android:searchSettingsDescription="asd asd asd"
android:includeInGlobalSearch="true"
android:searchSuggestAuthority="com.andreabaccega.marketsearch.SuggestionProvider"
android:searchSuggestIntentAction="android.intent.action.VIEW"
android:searchSuggestIntentData="content://com.andreabaccega.marketsearch.SuggestionProvider/"
>
</searchable>
Run Code Online (Sandbox Code Playgroud)