当前位置: 编程技术>移动开发
本页文章导读:
▪设立线程优先级 设置线程优先级
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也可以完成读写操作。
最新技术文章: