1.mounted中注册监听方法:
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:主机域名、雅安服务器托管、营销软件、网站建设、立山网站维护、网站推广。
//监听返回键
if (window.history window.history.pushState) {
history.pushState(null, null, document.URL);
window.addEventListener('popstate', this.backButton, false);//false阻止默认事件
}
2.methods中写方法的实现:
backButton () {//点击返回键时实现的业务逻辑
},
3.在destroyed中写:(退出页面时销毁监听事件,防止其他页面使用)
destroyed () {
window.removeEventListener('popstate',this.backButton,false);//false阻止默认事件
},
是从市场下载下来的程序还是自己写的程序不知道怎么实现?
如果是前者,那这无能为力,除非逆向编译再修改代码。
如果是后者的话,在你的写的activity中的按钮跳转中把finish();去掉就行了,每次跳转activity不必finish该活动,就能返回上一个界面了。
在apk-a按返回键退出到桌面好实现,重写按键事件就行;但你要求任何程序按返回键都打开apk-a,这是不可行的,首先要做到这一点只有修改系统默认的返回键功能,本身就会影响机器使用,它就不是返回键了
楼上都是答非所问,人家是想问什么这么做,不是问你怎么做,之所以做成2次,是怕你一次误点就退出程序了,用户体验会很差,所以做成双击,监听返回键第一按不做处理,只记录按下时间,第二次点击的时候判读距离上次点击时间,很短就认为是双击就退出应用,很长就当作第一次点击再记录点击时间,这样就不会误点back而退出应用了。
在activity中用keydown很容易实现对返回键的监听,但是这个函数不能再fragment中重载。
通过呕心沥血的寻找,终于找到了解决办法,对其他物理按键的监听也同理。
public class phonerecorder extends Fragment {
View listview;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
listview = (View) inflater.inflate(R.layout.phonerecorder, null);
mListView = (ListView) listview.findViewById(R.id.listView);
init();
mListView.setOnItemClickListener(clickitemlistener);
listview.setFocusable(true);//这个和下面的这个命令必须要设置了,才能监听back事件。
listview.setFocusableInTouchMode(true);
listview.setOnKeyListener(backlistener);
return listview;
}
private View.OnKeyListener backlistener = new View.OnKeyListener() {
@Override
public boolean onKey(View view, int i, KeyEvent keyEvent) {
if (keyEvent.getAction() == KeyEvent.ACTION_DOWN) {
if (i == KeyEvent.KEYCODE_BACK) { //表示按返回键 时的操作
if (!rootpatch.equals(currentfilepach) currentfilepach != null) {
File file = new File(currentfilepach);
openDir2(file.getParent().toString());
currentfilepach = file.getParent().toString();
return true;
} //后退
return false; //已处理
}
}
return false;
}
};
}