当前位置:  编程技术>移动开发
本页文章导读:
    ▪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

原问题描述:

我用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])]
    }

}



    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android提高之自定义Menu(TabMenu)实现方法 iis7站长之家
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3