2011-03-13 73 views
0

我已创建了一个应用程序包含 最大的进度条limit.if我按下启动开始我的进度条,进度条在后台启动,并在唯一的应用程序得到的消息框。但是,如果我按BACK按钮,然后我的应用程序得到停止.. 我希望我的应用程序在后台运行,但我按下BACK按钮..所以请告诉我如何实现这一点..如果想要我的应用程序的代码,然后让我知道.. 。应用是停止,如果我按下后退按钮在Android中

回答

0

试试这个

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
      if(keyCode==KeyEvent.KEYCODE_BACK){ 
       moveTaskToBack(true); 
      } 
      return super.onKeyDown(keyCode, event); 
} 
+0

它不工作.......你能告诉我如何实现.... – Danny 2011-03-13 05:47:07

0

您可以使用服务的概念作为一种解决方案在后台运行它。

+0

@nikki ok..thanks .....你可以请给它一些样本.. ..? – Danny 2011-03-13 07:40:40

+0

浏览本网站.http://marakana.com/forums/android/examples/60.html这是一个很好的例子,有助于演示服务。 – Niki 2011-03-13 08:15:28

+0

接受任何的答案是VL让别人回答问题乌尔的 – Niki 2011-03-13 12:36:37

1

您也需要在按下后退按钮来保存你的Android应用程序的状态。 (将所有应用程序数据保存在onPause中,并在应用程序再次启动时重新使用它),或者在Android关闭应用程序时使用Service以保持其在后台运行。

东西更方便的是IntentService如果您的服务就像是一个单一的任务(例如文件上传或下载)。任务结束后,IntentService将自动完成。

此外,还要确保你没有做任何操作的UI线程。如果线程被阻止的时间超过一定时间,那么Android会认为您的应用程序无响应,并会强制用户关闭应用程序。使用AsyncTask将所有长时间运行的操作移至另一个线程。

+0

感谢先生....请帮我这个样子.....因为我是新来的Android应用程序。发展 – Danny 2011-03-13 07:41:47

+0

没问题丹尼。很多人在这里帮助你。如果您发现它们有帮助,请确保接受他们的答案。 :) – Abhinav 2011-03-13 10:34:35

0

@rohit如果Android版本低于7 onBackPressed()还没有实现。然后使用下面的代码片段,它应该工作。

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if ( Integer.valueOf(android.os.Build.VERSION.SDK) < 7 //Instead use android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ECLAIR 
      && keyCode == KeyEvent.KEYCODE_BACK 
      && event.getRepeatCount() == 0) { 
     // Take care of calling this method on earlier versions of 
     // the platform where it doesn't exist. 
     onBackPressed(); 
    } 

    return super.onKeyDown(keyCode, event); 
} 
@Override 
public void onBackPressed() { 
    // This will be called either automatically for you on 2.0 
    // or later, or by the code above on earlier versions of the 
    // platform. 

    doSomething(); 
    return; 
} 
相关问题