android返回鍵退出
A. 請教:在Android和jQuery mobile聯合開發中如何設置返回鍵退出
如果頁面中鏈接,
如果希望點擊鏈接繼續在當前
browser
中響應,
而不是新開
Android
的系統browser
中響應該鏈接,必須覆蓋
webview
的
WebViewClient
對象。mWebView.setWebViewClient(new
WebViewClient(){
public
boolean
shouldOverrideUrlLoading(WebView
view,
String
url)
{
view.loadUrl(url);
return
true;
}
});
如果不做任何處理,瀏覽網頁,點擊系統「Back」鍵,整個
Browser
會調用
finish()而結束自身,
如果希望瀏覽的網頁回退而不是推出瀏覽器,需要在當前
Activity
中處理並消費
掉該
Back
事件。public
boolean
onKeyDown(int
keyCode,
KeyEvent
event){
if
((keyCode
==
KeyEvent.KEYCODE_BACK)
&&
mWebView.canGoBack())
{
mWebView.goBack();
return
true;
}
return
super.onKeyDown(keyCode,
event);
}
不知道你是用什麼控制項來開發web
,如果你不重寫onKeyDown
點擊系統「Back」鍵就會退出的。
B. Android中按返回鍵怎麼退出一個用程序
重寫activty的onkeydown在用戶按下返回鍵的時候調用,所以我們可以通過重寫onkeydown的方法實現,還有可能到了MainActivity前面還有其他acitivty存活這,我們需要在onkeydown的時候把所有的activity都結束掉,為了實現這個我們先定義一個BaseActivity,在Oncreate和ondestroy生命周期里存儲acitivty的引用
用一個List集合存儲存活的acitivity,我們把list作為application成員
寫一個MyApp類,作為程序啟動的application
public class MyApp extends Application{
private List<Activity> activities = new ArrayList<Activity>();
public List<Activity> getActivities(){
return activities;
}
}
BaseActivity代碼如下
class BaseActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
((MyApp)getApplication()).getActivities().add(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
((MyApp)getApplication()).getActivities().remove(this);
}
}
以後工程里的所有Activity都繼承於BaseActivity即可
最後是MainAcitivty的代碼,在onkeydown方法里遍歷list集合,調用每個activity的finish方法即可
public class MyActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_two);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
List<Activity> activities = ((MyApp)getApplication()).getActivities();
for(Activity activity:activities){
activity.finish();
}
return super.onKeyDown(keyCode, event);
}
}
C. 如何在android上按返回鍵退出
繼承Activity的onkeydown()方法,代碼如下:
long mExitTime;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode == KeyEvent.KEYCODE_BACK) {
if ((System.currentTimeMillis() - mExitTime) > 2000) {
BaseTools.ShowToast(getApplicationContext(), getResources()
.getString(R.string.exit_once_again));
mExitTime = System.currentTimeMillis();
} else {
exitAPP();
}
return true;
}
return super.onKeyDown(keyCode, event);
}
D. android按系統返回鍵為什麼會退出
這是系統回收內存的一種方式,當你的系統內存不夠用時,按返回鍵就會銷毀當前應用程序,就是我們看到的退出
E. 如何添加Android返回鍵的退出功能
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if(event.getKeyCode() == KeyEvent.KEYCODE_BACK){
if (event.getAction() == KeyEvent.ACTION_DOWN && event.getRepeatCount() == 0) {
if ((System.currentTimeMillis() - exitTime) > 2000) {
Toast.makeText(MainActivity.this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
} else {
//退出登錄Logout
//System.exit(0);
finish();
}
}
return true;
}
return super.dispatchKeyEvent(event);
}
F. Android按下兩次返回鍵退出應用
再onBackPressed中記錄一下按下返回鍵的時間,當兩次時間間隔小於1秒鍾的時候直接退出
G. android開發中如何實現連按兩次返回鍵退出程序
設置一個臨界區變數,每一次返回事件記錄一下時間。
判斷這次和上次時間間隔是否超過2s(根據實際業務設置間隔):
1.超過2s認為第一次點擊返回
2.未超過,退出程序。
H. android模擬器中的返回鍵怎麼設置一點返回鍵就直接退出程序而不是退出到登錄頁面
監聽返回鍵
java">publicbooleanonKeyDown(intkeyCode,KeyEventevent){
if((keyCode==KeyEvent.KEYCODE_BACK))//表示按的是返回鍵
{
System.exit(0);//退出進程關閉app,或者可以寫個工具類
//ActivityUtils.getInstance().addActivity(this);
//還有就是登錄頁面跳轉的時候finish登錄頁面的activity
returnfalse;
}else{
returnsuper.onKeyDown(keyCode,event);
}
publicclassActivityUtils{
privateActivityUtils(){
}
=newAtyContainer();
privatestaticList<Activity>activitys=newArrayList<Activity>();
(){
returninstance;
}
publicvoidaddActivity(Activityactivity){
activityStack.add(activity);
}
publicvoidremoveActivity(Activityactivity){
activityStack.remove(activity);
}
/**
*結束所有Activity
*/
publicvoidfinishAllActivity(){
for(inti=0,size=activityStack.size();i<size;i++){
if(!=activityStack.get(i)){
activityStack.get(i).finish();
}
}
activityStack.clear();
}
}
{
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
//添加Activity到堆棧
ActivityUtils.getInstance().addActivity(this);
}
protectedvoidonDestroy(){
super.onDestroy();
//結束Activity&從棧中移除該Activity
ActivityUtils.getInstance().removeActivity(this);
}
}
I. Android程序中按返回鍵直接退出了程序,我想按返回鍵返回上個界面,應該怎麼實現,等大神
你用的setcontentview的話,就是說activity其實沒有切換,那你要自己處理返回按鍵的事件,當點擊返回時,setcontentview為上一個頁面的。