当前位置: 编程技术>移动开发
本页文章导读:
▪FileObserver监听资料示例 FileObserver监听文件示例mainActivity如下:
package c.c;
import java.io.File;
import android.os.Bundle;
import android.os.Environment;
import android.os.FileObserver;
import android.view.View;
import android.view.View.OnClickListener;
import and.........
▪ 东南融通讯息科技(苏州)有限公司 东南融通信息科技(苏州)有限公司
东南融通信息科技(苏州)有限公司 ......
▪ 检测用户是不是点开View的实现方法 检测用户是否点开View的实现方法原问题来自于CSDN问答频道,更多见:http://ask.csdn.net/questions/1273
原问题描述:
我用NSUserDefault检测应用首次被打开:
BOOL didRunBefore = [[NSUserDefaults standardUserDefau.........
[1]FileObserver监听资料示例
来源: 互联网 发布时间: 2014-02-18
FileObserver监听文件示例
mainActivity如下:
package c.c;
import java.io.File;
import android.os.Bundle;
import android.os.Environment;
import android.os.FileObserver;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.app.Activity;
/**
* 利用FileObserver监听SD卡的文件变化
* 如文件的建立和删除
* 注意FileObserver是另外的一个线程
* 所以在其中改变View是不可行的
*
*/
public class MainActivity extends Activity {
private Button mStartButton;
private Button mAddButton;
private Button mDeleteButton;
private TextView mTextView;
private String mSDCardPath;
private String mFilePath;
private File mFile;
private SDCardFileObserver mFileObserver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
}
private void init(){
mStartButton=(Button) findViewById(R.id.start_Button);
mStartButton.setOnClickListener(new OnClickListenerImpl());
mAddButton=(Button) findViewById(R.id.add_Button);
mAddButton.setOnClickListener(new OnClickListenerImpl());
mDeleteButton=(Button) findViewById(R.id.delete_Button);
mDeleteButton.setOnClickListener(new OnClickListenerImpl());
mTextView=(TextView) findViewById(R.id.textView);
mSDCardPath=Environment.getExternalStorageDirectory().toString();
}
private class OnClickListenerImpl implements OnClickListener {
@Override
public void onClick(View v) {
if (v.getId()==R.id.start_Button) {
mFileObserver=new SDCardFileObserver(mSDCardPath);
mFileObserver.startWatching();
mTextView.setText("开始监听");
}
if (v.getId() == R.id.add_Button) {
try {
mFilePath=mSDCardPath+File.separator+"test.txt";
mFile=new File(mFilePath);
if (!mFile.exists()) {
mFile.createNewFile();
}
mTextView.setText("创建"+mFilePath);
} catch (Exception e) {
}
}
if (v.getId() == R.id.delete_Button) {
if (mFile!=null) {
mFile.delete();
mTextView.setText("删除"+mFilePath);
}
}
}
}
private class SDCardFileObserver extends FileObserver{
public SDCardFileObserver(String path) {
super(path);
}
@Override
public void onEvent(int event, String path) {
switch (event) {
case FileObserver.CREATE:
System.out.println("------->创建文件,"+path);
//the next code is not right
//mTextView.setText("创建,"+path);
break;
case FileObserver.DELETE:
System.out.println("------->删除文件,"+path);
//the next code is not right
//mTextView.setText("删除,"+path);
break;
default:
break;
}
}
}
@Override
protected void onDestroy() {
super.onDestroy();
mFileObserver.stopWatching();
}
}
main.xml如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="match_parent" >
<Button
android:id="@+id/start_Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="开始监听" />
<Button
android:id="@+id/add_Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="增加文件" />
<Button
android:id="@+id/delete_Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="删除文件" />
</RelativeLayout>
</LinearLayout>
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/linearLayout"
android:layout_centerHorizontal="true"
android:paddingTop="20dip"
android:text="@string/hello_world"
android:textSize="20sp" />
</RelativeLayout>
[2] 东南融通讯息科技(苏州)有限公司
来源: 互联网 发布时间: 2014-02-18
东南融通信息科技(苏州)有限公司
东南融通信息科技(苏州)有限公司
[3] 检测用户是不是点开View的实现方法
来源: 互联网 发布时间: 2014-02-18
检测用户是否点开View的实现方法
原问题来自于CSDN问答频道,更多见:http://ask.csdn.net/questions/1273
原问题描述:
问题是,我需要给每个view添加一个Alert,用来说明其中包括的属性,只要在应用首次点开的时候出现就行。
解决方法:
作为一个面向对象程序员可以用一个比较普遍的方法:
然后在ViewController中, 添加下面的代码在viewWillAppear或者viewDidAppear中:
原问题来自于CSDN问答频道,更多见:http://ask.csdn.net/questions/1273
原问题描述:
我用NSUserDefault检测应用首次被打开:
BOOL didRunBefore = [[NSUserDefaults standardUserDefaults] boolForKey:@"didRunBefore"];
if (!didRunBefore) {
//Your Launch Code
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"didRunBefore"];
[[NSUserDefaults standardUserDefaults] synchronize];
}问题是,我需要给每个view添加一个Alert,用来说明其中包括的属性,只要在应用首次点开的时候出现就行。
解决方法:
作为一个面向对象程序员可以用一个比较普遍的方法:
+ (BOOL)checkWhetherRunBefore:(NSString *)key
{
return [[NSUserDefaults standardUserDefaults] boolForKey:key];
}
+ (void)hasRunForMyClass:(NSString *)key
{
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:key];
[[NSUserDefaults standardUserDefaults] synchronize];
}然后在ViewController中, 添加下面的代码在viewWillAppear或者viewDidAppear中:
- (void)viewWillAppear
{
if(![HelpController checkWhetherRunBefore:NSStringFromClass([self class])])
{
//do your thing
[HelpController hasRunForMyClass:NSStringFromClass([self class])]
}
}最新技术文章: