我看到,我们可以在初始化变量Awake()或Start()和 Awake()会之前调用Start().
我们什么时候应该初始化Awake并Start获得最佳性能?
我的菜单项变得更大,所以我想将它们分组并制作一个分隔线来分隔每个组.我现在应该怎么做 ?
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<!--group1-->
<item
android:id="@+id/action_addtag"
android:title="@string/add_hashtag_string"
app:showAsAction="never" />
<item
android:id="@+id/action_block_list"
android:title="Block"
app:showAsAction="never" />
<item
android:id="@+id/action_report_list"
android:title="Report"
app:showAsAction="never" />
<!--group2-->
<item
android:id="@+id/terms"
android:title="Terms"
app:showAsAction="never" />
<item
android:id="@+id/feedback"
android:title="FeedBack"
app:showAsAction="never" />
<!--group3-->
<item
android:id="@+id/action_setting"
android:title="Setting"
app:showAsAction="never" />
</menu>
Run Code Online (Sandbox Code Playgroud) 我设置为Retrofit:
private Interceptor interceptor = new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
if (!NetworkUtil.isNetworkAvailable()) {
request = request.newBuilder()
.cacheControl(CacheControl.FORCE_CACHE)
.build();
}
Response response = chain.proceed(request); //Exception here
if (NetworkUtil.isNetworkAvailable()) {
String cacheControl = request.cacheControl().toString();
response = response.newBuilder()
.removeHeader("Pragma")
.removeHeader("Cache-Control")
.header("Cache-Control", cacheControl)
.build();
} else {
int maxStale = 60 * 60 * 24 * 7;
response = response.newBuilder()
.removeHeader("Pragma")
.removeHeader("Cache-Control")
.header("Cache-Control", "public, only-if-cached, max-stale=" + maxStale)
.build();
}
return response; …Run Code Online (Sandbox Code Playgroud) 我使用Google的Android-map-utils库处理Google Map集群。就我而言,我使用Glide从URL加载图像:
@Override
protected void onBeforeClusterItemRendered(final FeedsModel feedsModel, final MarkerOptions markerOptions) {
// Draw a single person.
// Set the info window to show their name.
Glide
.with(mActivity.getApplicationContext())
.load(feedsModel.getImages().getThumbnail().getUrl())
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(new SimpleTarget<GlideDrawable>() {
@Override
public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> glideAnimation) {
mImageView.setImageDrawable(resource);
Bitmap icon = mIconGenerator.makeIcon();
Marker markerToChange = null;
for (Marker marker : mClusterManager.getMarkerCollection().getMarkers()) {
if (marker.getPosition().equals(feedsModel.getPosition())) {
markerToChange = marker;
}
}
// if found - change icon
if (markerToChange != null) {
markerToChange.setIcon(BitmapDescriptorFactory.fromBitmap(icon));
}
} …Run Code Online (Sandbox Code Playgroud) 当我使应用程序使用许多库.我通常遇到一个错误UNEXPECTED TOP-LEVEL EXCEPTION
此错误有一些原因:
关于第二种情况,很难检测出嵌套的lib是什么.
如果您对此问题有经验,请与我分享.
更新:
dependencies {
compile files('libs/ormlite-android-4.48.jar')
compile files('libs/ormlite-core-4.48.jar')
// compile 'com.obsez.android.lib.filechooser:filechooser:1.1.2'
// compile 'com.github.bumptech.glide:glide:3.6.1'
compile 'com.android.support:recyclerview-v7:23.1.1'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.jakewharton:butterknife:7.0.1'
compile 'cn.lightsky.infiniteindicator:library:1.0.5'
compile 'com.firebase:firebase-client-android:2.3.1'
compile 'de.hdodenhof:circleimageview:2.0.0'
compile 'com.mcxiaoke.volley:library:1.0.15'
compile('com.google.apis:google-api-services-drive:v2-rev170-1.20.0') {
exclude group: 'org.apache.httpcomponents'
}
compile('com.google.api-client:google-api-client-android:1.20.0') {
exclude group: 'org.apache.httpcomponents'
}
compile('com.google.android.gms:play-services:8.4.0') {
exclude group: 'com.android.support', module: 'support-v4'
}
compile 'com.nononsenseapps:filepicker:2.4.1'
}
Run Code Online (Sandbox Code Playgroud) 我正在使用远程 android TV 要在使用时按远程按钮捕获事件,我使用以下代码:
public boolean dispatchKeyEvent(KeyEvent event) {
Log.d("LOG", "Number repeate count = " + event.getRepeatCount());
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (event.getKeyCode()) {
case KeyEvent.KEYCODE_1:
exoPlayerManager.showControllerView();
if (event.getRepeatCount() > 0) {
if (videoPlayerView.getPlaybackControlView().getPlayer().getPlaybackParameters().speed >= 64) {
((TextView)videoPlayerView.getPlaybackControlView().findViewById(R.id.exo_rate)).setVisibility(View.GONE);
videoPlayerView.getPlaybackControlView().getPlayer().setPlaybackParameters(new PlaybackParameters(1, 1.0f));
} else {
videoPlayerView.getPlaybackControlView().getPlayer().setPlaybackParameters(new PlaybackParameters(2 * videoPlayerView.getPlaybackControlView().getPlayer().getPlaybackParameters().speed, 1.0f));
}
((TextView)videoPlayerView.getPlaybackControlView().findViewById(R.id.exo_rate)).setText(videoPlayerView.getPlaybackControlView().getPlayer().getPlaybackParameters().speed + "X");
}else if (videoPlayerView.getPlaybackControlView() != null) {
return videoPlayerView.getPlaybackControlView().dispatchKeyEvent(event);
}
break;
Run Code Online (Sandbox Code Playgroud)
我看到当我按遥控器上的 1 个按钮时,getRepeateCount()总是返回 0。我想如果我按重复它应该是更大的 0。
这里有什么问题?
我尝试使用Over The Air(OTA) iOS IPA文件分发IPA为iphone 安装文件,但它有错误.
因此,当我单击安装链接到对话框错误显示时,我需要获取日志.
请告诉我获取日志安装的工具或方法.
我使应用程序使用youtube API。首先,我用于Retrofit加载列表视频,然后继续用于加载列表Retrofit中Video的所有信息。
因为listview支持刷新和loadmore,所以我需要cancel所有要求重新调用。
我知道呼叫具有cancel()取消请求的功能。我可以通过将所有Call放入堆栈并cancel()为每个Call 调用来取消所有请求。
还有更好的解决方案吗?
android ×6
retrofit2 ×2
android-tv ×1
build.gradle ×1
contextmenu ×1
debugging ×1
exception ×1
google-maps ×1
install ×1
ios ×1
keyevent ×1
logging ×1
menu ×1
menuitem ×1