小编Mer*_*ryl的帖子

NSURLConnection下载很长

我在下载5 MB文件时遇到问题,在iPhone 5上使用iOS 6.1需要2分多钟.

使用相同iOS版本的iPhone 4S仅需10秒,两者都使用WiFi.

我尝试了不同的缓存策略和NSURLRequest的超时间隔,它没有改变,它仍然需要很长时间.下载是通过HTTP.

我正在使用NSURLConnection类,在下载这个"大"文件之前我正在下载另外两个.

不知道还有什么可以重要,减少时间.

提前致谢.

码:

@interface MyClass : NSObject <NSURLConnectionDelegate>
{
  @private id delegate;
  NSURLConnection *connection;
  NSMutableData* responseData;
  //...
}


#import "MyClass.h"

@implementation MyClass

-(void)getObj1:(id)delegateObj
{
   delegate = delegateObj;

   NSString *url = @"...";

   NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:120.0];

   connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];

   if(connection)
   {
      responseData = [NSMutableData data];
   }
}

-(void)getObj2:(*String)somesString
{

   NSString *url = @"...";

   NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:120.0];

   connection = [[NSURLConnection …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c nsurlconnection ios6

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

片段事务时冻结UI

我正面临使用FragmentManager替换片段的问题.我的问题是冻结用户界面.我正在努力找到一些好的做法和/或库来处理我的问题.

我的部分代码:

主要活动布局:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/my_drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<FrameLayout
    android:id="@+id/content"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)

主要活动类

public class MyActivity extends Activity 
Run Code Online (Sandbox Code Playgroud)

用方法

  public void nextFragment(Fragment fragment, int position) {
    fragment.setArguments(new Bundle());
    FragmentManager fragmentManager = getFragmentManager();
    fragmentManager
            .beginTransaction()
            .replace(R.id.content, fragment).commit();

}
Run Code Online (Sandbox Code Playgroud)

我的每个片段都像

import android.app.Fragment;

public class SomeFragment extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    RelativeLayout rootView = (RelativeLayout) inflater.inflate(
            R.layout.fragment_layout, container, false);
    //many long time data downloading & creating view
    }

private void nextFragment() { …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-fragmentactivity fragmenttransaction

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