当前位置: 编程技术>移动开发
本页文章导读:
▪设立线程优先级 设置线程优先级
Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND); //设置线程优先级为后台int THREAD_PRIORITY_AUDIO //标准音乐播放使用的线程优先级int THREAD_PRIORITY_BACKGROUND //标准后台程序int THR.........
▪ 文字跟着输入滚动 文字随着输入滚动
- (void)addKeyboardObserver
{
// This could be in an init method.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil];
[[NSNo.........
▪ 不同运用间数据共享 不同应用间数据共享
Android不同应用之间数据的共享有许多方式,但是我觉得还是使用sharedPreference比较简单和轻量级。如果程序B想要访问程序A的sharedPreference可以通过下面的语句来实现:.........
[1]设立线程优先级
来源: 互联网 发布时间: 2014-02-18
设置线程优先级
Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND); //设置线程优先级为后台
int THREAD_PRIORITY_AUDIO //标准音乐播放使用的线程优先级
int THREAD_PRIORITY_BACKGROUND //标准后台程序
int THREAD_PRIORITY_DEFAULT // 默认应用的优先级
int THREAD_PRIORITY_DISPLAY //标准显示系统优先级,主要是改善UI的刷新
int THREAD_PRIORITY_FOREGROUND //标准前台线程优先级
int THREAD_PRIORITY_LESS_FAVORABLE //低于favorable
int THREAD_PRIORITY_LOWEST //有效的线程最低的优先级
int THREAD_PRIORITY_MORE_FAVORABLE //高于favorable
int THREAD_PRIORITY_URGENT_AUDIO //标准较重要音频播放优先级
int THREAD_PRIORITY_URGENT_DISPLAY //标准较重要显示优先级,对于输入事件同样适用。
[2] 文字跟着输入滚动
来源: 互联网 发布时间: 2014-02-18
文字随着输入滚动
- (void)addKeyboardObserver { // This could be in an init method. [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidHide:) name:UIKeyboardDidHideNotification object:nil]; } - (void)keyboardDidShow:(NSNotification*)notification { NSDictionary* keyboardInfo = [notification userInfo]; NSValue* keyboardFrameBegin = [keyboardInfo valueForKey:UIKeyboardFrameBeginUserInfoKey]; _keyboardFrameBeginRect = [keyboardFrameBegin CGRectValue]; UIScrollView *_scrollView = (UIScrollView*)self.view; _scrollView.frame = CGRectMake(_scrollView.frame.origin.x, _scrollView.frame.origin.y, _scrollView.frame.size.width, _scrollView.frame.size.height - _keyboardFrameBeginRect.size.height); } - (void)keyboardDidHide:(NSNotification*)notification { UIScrollView *_scrollView = (UIScrollView*)self.view; _scrollView.frame = CGRectMake(_scrollView.frame.origin.x, _scrollView.frame.origin.y, _scrollView.frame.size.width, _scrollView.frame.size.height + _keyboardFrameBeginRect.size.height); }
(void)textViewDidChange:(UITextView *)textView { UIScrollView *_scrollView = (UIScrollView*)self.view; _textView.frame = CGRectMake(_textView.frame.origin.x, _textView.frame.origin.y, _textView.contentSize.width, _textView.contentSize.height); _scrollView.contentSize = _textView.frame.size; if (_scrollView.frame.size.height < _textView.frame.size.height) { CGPoint bottomOffset = CGPointMake(0,_textView.frame.size.height-_keyboardFrameBeginRect.size.height); [_scrollView setContentOffset:bottomOffset animated:NO]; } }
[3] 不同运用间数据共享
来源: 互联网 发布时间: 2014-02-18
不同应用间数据共享
Android不同应用之间数据的共享有许多方式,但是我觉得还是使用sharedPreference比较简单和轻量级。如果程序B想要访问程序A的sharedPreference可以通过下面的语句来实现:
当然在A程序里创建SharedPreference的时候也需要使用Context.MODE_WORLD_READABLE属性。另外SharedPreference还有Context.MODE_WORLD_WRITEABLE属性。根据SDK的解释,就是允许别的应用程序来对SharedPreference进行写操作。但是在实际程序实验中发现即使加上了这个属性,写操作也是无法成功的,会提示一个错误:Couldn't rename file /data/data/....PREFERENCES_NAME.XML to /data/data/....PREFERENCES_NAME.XML.bak。这个错误的原因应该是很明确了,程序B在程序A的目录里面没有创建和重命名文件的权限。
那么到底要怎么样才能让程序B在程序A的SharedPreferences里面写东西呢,其实很简单,在manifest.xml里面将两个应用程序的android:sharedUserId属性设为相同的就可以了。而且SharedPreference的属性也不需要Context.MODE_WORLD_WRITEABLE了,只需要Context.MODE_PRIVATE也可以完成读写操作。
Android不同应用之间数据的共享有许多方式,但是我觉得还是使用sharedPreference比较简单和轻量级。如果程序B想要访问程序A的sharedPreference可以通过下面的语句来实现:
try { AContext =createPackageContext(A_PACKAGE_NAME, Context.CONTEXT_IGNORE_SECURITY); } catch (NameNotFoundException e) { Log.e(TAG, "find package error!"); } SharedPreferences sp = AContext.getSharedPreferences(PREFERENCES_NAME, Context.MODE_WORLD_READABLE); sp.getInt(PREF_NAME, 0);
当然在A程序里创建SharedPreference的时候也需要使用Context.MODE_WORLD_READABLE属性。另外SharedPreference还有Context.MODE_WORLD_WRITEABLE属性。根据SDK的解释,就是允许别的应用程序来对SharedPreference进行写操作。但是在实际程序实验中发现即使加上了这个属性,写操作也是无法成功的,会提示一个错误:Couldn't rename file /data/data/....PREFERENCES_NAME.XML to /data/data/....PREFERENCES_NAME.XML.bak。这个错误的原因应该是很明确了,程序B在程序A的目录里面没有创建和重命名文件的权限。
那么到底要怎么样才能让程序B在程序A的SharedPreferences里面写东西呢,其实很简单,在manifest.xml里面将两个应用程序的android:sharedUserId属性设为相同的就可以了。而且SharedPreference的属性也不需要Context.MODE_WORLD_WRITEABLE了,只需要Context.MODE_PRIVATE也可以完成读写操作。
最新技术文章: