我正在开发一个使用Web服务从服务器获取数据的Android应用程序,因为我有三套不同的URL来指向开发系统,测试服务器和实时服务器.每当我想提供测试/实时应用程序时,很难更改URL.所以我计划将其设置为可配置,以便应用程序可以根据我的构建类型配置常量获取适当的URL.所以,
例如:xml资源
<integer name="config_build_type">0</integer>
<string-array name="url_authentication">
<item >http://development.com/xxxx</item>
<item >http://test.com/xxx</item>
<item >http://example.com/xxx</item>
</string-array>
Run Code Online (Sandbox Code Playgroud)
Java静态常量
public class Config {
public static final int BUILD_TYPE = 0; // 0 - development, 1 - test, 2 - live
public static final String[] URL_AUTHENTICATION = {"http://development.com/", "http://test.com/", "http://example.com"};
}
Run Code Online (Sandbox Code Playgroud) 我需要从服务器下载大文件(即> 40MB)到我的应用程序,这个文件将是ZIP或PDF.我使用NSURLConnection实现了它,如果文件较小,则可以正常工作,因为它下载了部分填充并且执行已经停止.例如我试图下载36MB PDF文件,但只下载了16MB.请帮我知道原因?怎么解决?
仅供参考:实施档案
#import "ZipHandlerV1ViewController.h"
@implementation ZipHandlerV1ViewController
- (void)dealloc
{
[super dealloc];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
}
- (void)viewDidLoad
{
UIView *mainView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 400, 400)];
[mainView setBackgroundColor:[UIColor darkGrayColor]];
UIButton *downloadButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[downloadButton setFrame:CGRectMake(50, 50, 150, 50)];
[downloadButton setTitle:@"Download File" forState:UIControlStateNormal];
[downloadButton addTarget:self action:@selector(downloadFileFromURL:) forControlEvents:UIControlEventTouchUpInside];
[mainView addSubview:downloadButton];
[self setRequestURL:@"http://www.mobileveda.com/r_d/mcps/optimized_av_allpdf.pdf"];
[self.view addSubview:mainView];
[super viewDidLoad];
}
- (void)viewDidUnload
{
[super viewDidUnload];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
-(void) setRequestURL:(NSString*) …Run Code Online (Sandbox Code Playgroud) 我可以通过处理未捕获的异常来使用ACRA库来管理强制关闭错误.报告可以成功发送到谷歌文档,电子邮件和自定义Web服务..
但我想要的是什么..
我为什么要这个..
我想通过timePickerDialog获取AM/PM值.我的代码是这样的,它通过timepickerdialog通过用户输入并设置警报.在这里我得到用户输入
datetime = Calendar.getInstance();
new TimePickerDialog(this,this,datetime.get(Calendar.HOUR),datetime.get(Calendar.MINUTE),false).show();
Run Code Online (Sandbox Code Playgroud)
现在当onTimeSet函数调用时,我可以获得用户选择的小时和分钟,但无法获得用户选择的AM/PM值.这是其他代码
public void onTimeSet(TimePicker view, int hourOfDay, int minute) { try { Calendar time = Calendar.getInstance();
String am_pm;
if (datetime.get(Calendar.AM_PM) == Calendar.AM)
am_pm = "AM";
else if (datetime.get(Calendar.AM_PM) == Calendar.PM)
am_pm = "PM";
time.set(Calendar.HOUR, hourOfDay);
time.set(Calendar.MINUTE, minute);
//time.set(Calendar.SECOND, 0);
//time.set(Calendar.MILLISECOND, 0);
//time.set(Calendar.AM_PM,datetime.PM);
AlarmManager alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
alarmMgr.set(AlarmManager.RTC_WAKEUP,time.getTimeInMillis(), pendingIntent);
Toast.makeText(this, "Alarm Set", Toast.LENGTH_long);
Run Code Online (Sandbox Code Playgroud) android ×3
file ×2
constants ×1
download ×1
forceclose ×1
ios ×1
iphone ×1
timepicker ×1
xml ×1