小编Emi*_*Adz的帖子

如何在app强制退出并重新启动应用程序后恢复NSURLSession下载过程?

我已实现NSURLSession从我们的服务器下载相当大的文件.现在,只要我在前台或后台工作并返回应用程序,交易正在运行并完成.

但是,如果我使用多任务处理屏幕强制退出应用程序并再次重新打开应用程序.下载过程没有完成,虽然我从文档中了解到它应该,这里的文档说明:

如果iOS应用程序被系统终止并重新启动,则应用程序可以使用相同的标识符来创建新的配置对象和会话,并检索终止时正在进行的传输的状态.此行为仅适用于系统正常终止应用程序.如果用户从多任务屏幕终止应用程序,系统将取消所有会话的后台传输.此外,系统不会自动重新启动用户强制退出的应用程序.在再次开始传输之前,用户必须明确重新启动应用程序.

这意味着如果我再次启动应用程序,强制退出之前的事务应该再次启动,还是它们?我需要提交额外的操作才能使其正常工作吗?

更新:我偶然发现了这个项目:https: //github.com/Heikowi/HWIFileDownload#force-quit

这表明:

强行退出

应用程序被用户杀死后,下载不会在后台继续.在iOS 7(及更高版本)上,将传回恢复数据.

这意味着即使应用程序在后台被用户杀死,也有办法接收恢复数据.只有项目是用Objective-C编写的,我无法理解他们为实现这一目标所做的工作.

ios forceclose nsurlsession nsurlsessiondownloadtask swift

16
推荐指数
1
解决办法
7648
查看次数

如何在ViewPager中重新创建所有片段:

我有这个问题,我有FragmentActivity一个ViewPager和一个ViewPagerAdapter.

在这个ViewPager中,我有3个Fragments,每个都包含一个TableLayout以编程方式使用a填充的2dArrayList.

单击FragmentActivity布局中的按钮,我过滤了数据,2dArrayList并且基本上需要Fragments使用新数据集重新创建所有3 (onCreateView在所有数据集中运行方法).

所以我onClickListener为这个按钮创建一个:

 private class SlicerSelectedOnClickListener implements OnClickListener {

    private ODSharedSlicer slicer;

    public SlicerSelectedOnClickListener(ODSharedSlicer slicer) {
        super();
        this.slicer = slicer;
    }

    public void onClick(View v) {
        String slicerValue = ((Button) v).getText().toString();
        Log.d(TAG,"Slicer value: "+ slicerValue +" chosen");
        application.currentReport.getODSharedSlicers().get(0).getSharedSlicerSelectedMemebers().add(slicerValue);

        ViewGroup parent = (ViewGroup) ((Button) v).getParent();

        for (int i = 0; i < parent.getChildCount(); i++) 
        {
            if ((parent.getChildAt(i) …
Run Code Online (Sandbox Code Playgroud)

android android-viewpager

15
推荐指数
2
解决办法
2万
查看次数

在Android 4.4.2上创建TextInputLayout时出错类EditText时出错:

我在应用程序的登录页面中使用TextInputLayout UI机制,一切都很好,除了在这个设备上运行4.4.2 android版本的设备我有一个例外.

这是我的布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<include android:id="@+id/loginInfiLogoRL"
    layout="@layout/login_infi_logo_layout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingLeft="-3dp"
    android:layout_marginTop="5dp"
    android:layout_marginBottom="10dp"/>

<!--EMAIL-->
<android.support.design.widget.TextInputLayout
    android:id="@+id/email_wrapper"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/loginInfiLogoRL"
    android:theme="@style/TextLabel">

    <EditText
        android:id="@+id/etUserName"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/login_screen_email_hint"
        android:imeOptions="actionNext"
        android:inputType="textEmailAddress"
        android:maxLines="1"
        android:nextFocusDown="@+id/etPassword"
        android:singleLine="true"
        android:textColor="@android:color/white"
        android:textColorHighlight="@color/Orange"
        android:textColorHint="@android:color/white" />

</android.support.design.widget.TextInputLayout>


<RelativeLayout
    android:id="@+id/rlPassword"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="12dp"
    android:layout_below="@id/email_wrapper">

    <!--PASSWORD-->
    <android.support.design.widget.TextInputLayout
        android:id="@+id/password_wrapper"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/TextLabel">

        <EditText
            android:id="@+id/etPassword"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/login_screen_password_hint"
            android:imeOptions="actionNext"
            android:inputType="textPassword"
            android:maxLines="1"
            android:nextFocusDown="@+id/bSignIn"
            android:shadowColor="@color/Orange"
            android:singleLine="true"
            android:textColor="@android:color/white"
            android:textColorHint="@android:color/white" />

    </android.support.design.widget.TextInputLayout>

    <!--FORGOT-->
    <TextView
        android:id="@+id/tvForgotPassword"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_centerInParent="true"
        android:paddingBottom="14dp"
        android:paddingRight="10dp"
        android:text="@string/login_screen_forgot_password_text"
        android:textColor="@color/Orange" …
Run Code Online (Sandbox Code Playgroud)

android colors android-edittext inflate-exception android-textinputlayout

13
推荐指数
1
解决办法
2838
查看次数

TYPE_TOAST替代方案不会请求权限?

我正在开发一个SDK,它WindowManager使用TYPE_TOAST LayoutParams类型放置弹出视图.最新版本的Android Nougat(7.1.1)做了一些更改WindowManager(我还不知道究竟有什么变化 - 如果有人可以详细说明会很感激)但是这个更改会导致所有添加了TYPE_TOAST类型的视图被删除从活动过渡后的窗口.

我无法添加任何权限请求,因此我无法使用需要SYSTEM_ALERT_WINDOW权限的类型.

尝试在每次转换后添加视图,但这些视图几乎在我添加后立即删除.(再次,我猜测是因为做了一些改变WindowManager)

所以问题是:只要应用程序处于活动状态并且在前台上,是否有人知道我可以使用一些替代方法将弹出视图显示为应用程序上的叠加层?

android overlay view android-windowmanager android-7.1-nougat

13
推荐指数
0
解决办法
895
查看次数

有没有办法在Google Map API v2中显示道路方向?

我正在寻找使用Google和这里的答案,我发现的唯一相关帖子是:

Google Maps Android V2和Direction API

使用Google Maps API v2获取行车路线

但那里没有答案.所以我已经提到了,但我会再说一遍.我正在寻找使用FragmentActivity和SupportMagFragment和LatLng对象而不使用MapView,MapActivtiy和GeoPoint的Google Map API v2的解决方案.

另外我没有使用Overlay对象,所以我无法在地图上绘制方向,是否有替代方案?

有没有办法做到这一点?

提前致谢.

android google-maps driving-directions google-directions-api

11
推荐指数
1
解决办法
5万
查看次数

具有scaleType centerCrop转换的共享元素是跳跃的

我正在尝试实现共享元素转换,当ImageViews一个屏幕上的2 转到下一个屏幕时.其中一个图像centerCrop在两个屏幕上都有scaleType .我面临的问题是,当转换开始时,图像将在其动画到下一个屏幕之前进入原始大小(裁剪之前).当它到达下一个屏幕时,它以原始大小到达它,然后它被裁剪到目标图像视图.

整个体验并不顺畅,真正让人眼前一亮.我使用的代码是:

public void animateIntent(View view, ArticleCoverData articleCoverData) {
    Intent intent = new Intent(mActivity, ReaderActivity.class);
    intent.putExtra(Constants.ARTICLE_DATA, articleCoverData);

    // The view animation will start from
    View coverStartView = view.findViewById(R.id.coverImage);
    View coverDiagonalDecoratorStartView = view.findViewById(R.id.diagonal_image_decorator);

    Pair<View, String> pair1 = Pair.create(coverStartView, mActivity.getString(R.string.transition_timeline_cover_image_to_reader_name));
    Pair<View, String> pair2 = Pair.create(coverDiagonalDecoratorStartView, mActivity.getString(R.string.transition_timeline_cover_image_diagonal_decorator_to_reader_name));

    ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(mActivity, pair1, pair2);
    ActivityCompat.startActivity(mActivity, intent, options.toBundle());
}
Run Code Online (Sandbox Code Playgroud)

使用Glide以下代码从Web加载图像:

Glide.with(mActivity).load(articleCoverData.mImageUrl).skipMemoryCache(true).diskCacheStrategy(DiskCacheStrategy.SOURCE).dontTransform().into(holder.coverImage);
Run Code Online (Sandbox Code Playgroud)

在接收方,图像加载如下:

Glide.with(mContext).load(mData.mImageUrl).skipMemoryCache(true).diskCacheStrategy(DiskCacheStrategy.SOURCE).into(mCoverImageView);
Run Code Online (Sandbox Code Playgroud)

在我定义的样式中:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Add this line -->
    <item name="android:windowContentTransitions">true</item>

    <!-- This is …
Run Code Online (Sandbox Code Playgroud)

android crop android-transitions shared-element-transition android-glide

11
推荐指数
1
解决办法
2940
查看次数

有没有办法为Mapfragment实现圆角?

我想给地图一个漂亮的圆角,就像它下面的两个方框一样.我不能用它自己的地图片段来做,因为片段没有背景属性.在布局中设置地图并将其背景设置为圆形也不会对我有帮助,这就是结果:

http://i.stack.imgur.com/LJhP1.jpg

我可以合并地图,但这会使它变小,我想避免它.

编辑:@Ryan这是新结果#2:

http://i.stack.imgur.com/69D59.jpg

我想这不坏,甚至没有接近其他盒子的角落,但仍然不错,一点点工作可以得到某个地方我只是没有一个正常的图像编辑器.但现在仍然困扰我的一件事是"位置"文本视图和它自己的地图之间的分离.我可以用其他方式画补丁,以便现在有距离吗?这就是我做到的方式:

http://i.stack.imgur.com/1Qx66.png

好吧,我终于弄明白了:

http://i.stack.imgur.com/bY4N5.jpg

这是我用于修补程序的内容:

在此输入图像描述

谢谢.

android android-layout android-maps-v2

10
推荐指数
3
解决办法
1万
查看次数

打开导航抽屉时如何使背景活动变小?

我想Activity在打开Navigation Drawer模拟Airbnb应用程序中存在的效果时使背景稍微小一点.我想最好的解释是截图:

在此输入图像描述

但重点不在于使视图更小,而是使其成为与抽屉打开/关闭动画同步的动画.因此,如果您开始打开抽屉,中间决定停止并返回,则背景活动比例将相应地受到影响.

如何使用DrawerLayout中的构建来完成这项工作?这有什么实现吗?

java animation android android-activity navigation-drawer

10
推荐指数
1
解决办法
2628
查看次数

启动时未选中TabLayout选中的选项卡图标

TabLayout在我的应用中使用了Tabbed导航.我有一个非常奇怪的问题,我使用此代码创建了4个选项卡:

private int[] tabIcons = {R.drawable.navigation_timeline_icon_selector, R.drawable.navigation_feed_icon_selector,
        R.drawable.navigation_messages_icon_selector, R.drawable.navigation_notification_icon_selector};

 TabLayout tabLayout = setTabLayout();
    if (tabLayout != null) {
        for (int i = 0; i < 4; i++) {
            tabLayout.getTabAt(i).setIcon(tabIcons[i]);
        }
    }
Run Code Online (Sandbox Code Playgroud)

tabIcon中的每个项目都是selector选定状态和非选定状态.所有图标选择器配置如下:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
      <item android:drawable="@drawable/navigation_timeline_selected_icon" android:state_selected="true"/>
      <item android:drawable="@drawable/navigation_timeline_selected_icon" android:state_pressed="true"/>
      <item android:drawable="@drawable/navigation_timeline_icon" />
</selector>
Run Code Online (Sandbox Code Playgroud)

问题是当应用程序启动时,第一个选定的选项卡(索引0)不使用选定的状态图标.相反,它使用非选择状态.

更详细的解释是这个问题的截图,首次启动我的选项卡如下所示:

在此输入图像描述

相反,它应该是这样的:

在此输入图像描述

更改页面后,所有图标都恢复为完整功能,并且正确选择了所选状态.

我尝试使用该TabLayout.Tab select()方法,但结果与使用的图标相同是未选择的图标.

有人知道我能做些什么来解决它吗?

icons tabs android android-selector android-tablayout

10
推荐指数
2
解决办法
8374
查看次数

如何使用Gradle中的不同资源文件夹为每个flavor创建两个应用程序?

目前我正在开发一个有5种口味的应用程序,这是我的build.gradle文件的一部分:

buildscript {
   repositories {
       mavenCentral()
   }
   dependencies {
       classpath 'com.android.tools.build:gradle:0.14.0'
   }
}

apply plugin: 'com.android.application'

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 20
    buildToolsVersion '20.0.0'

    signingConfigs {
        release {
            storeFile file("")
            storePassword "password"
            keyAlias "alias"
            keyPassword "password"
        }
    }

    lintOptions {
        abortOnError false
    }

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 20

        applicationId 'application.package'
        signingConfig signingConfigs.release
    }

    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }

    productFlavors {
        flavor1{
            applicationId 'com.flavor1.package'
        }
        flavor2{
            applicationId 'com.flavor2.package'
        }
        flavor3{
            applicationId 'com.flavor3.package'
        }
        flavor4{
            applicationId …
Run Code Online (Sandbox Code Playgroud)

java android gradle build.gradle android-gradle-plugin

9
推荐指数
1
解决办法
4720
查看次数