Android:继续在后台运行应用

时间:2013-12-15 08:12:04

标签: android

在我的应用程序中,当我从应用程序退出时,它不会在后台运行并完全关闭,但我希望应用程序继续在后台运行,我该怎么办?

这是我的代码:

@Override
    public void onBackPressed() {
        new AlertDialog.Builder(this).setIcon(android.R.drawable.ic_dialog_alert).setTitle("Exit")
                .setMessage("Are you sure you want to exit?")
                .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                        Intent intent = new Intent(Intent.ACTION_MAIN);
                        intent.addCategory(Intent.CATEGORY_HOME);
                        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                        startActivity(intent);
                        finish();
                    }
                }).setNegativeButton("No", null).show();
    }

2 个答案:

答案 0 :(得分:1)

使用服务在后台运行应用程序:

  

服务是一种应用程序组件,可以在后台执行长时间运行的操作,但不提供用户   接口

http://developer.android.com/guide/components/services.html

答案 1 :(得分:0)

尝试下面的示例代码

public class BackHelper extends Service {

   private static final String TAG = "me.trial";
   @Override
   public void onCreate()
  {
        Log.i(TAG, "Service onCreate" );
         super .onCreate();
         new sock().call();
  }
   @Override
   public void onDestroy() {
         // TODO Auto-generated method stub
        Log.i(TAG, "Service onDestroy" );
         super .onDestroy();
  }
   @Override
   public int onStartCommand(Intent intent, int flags, int startId) {
         // TODO Auto-generated method stub
        Log.i(TAG, "Service onstart" );

         return Service.START_STICKY;
  }
   @Override
   public IBinder onBind(Intent arg0) {
         // TODO Auto-generated method stub
        Log.i(TAG, "Service onBind" );
         return null ;
  }

}

从您的活动中调用此服务

Intent intent = new Intent(YourActivity.this, BackHelper.class);    
startService(intent);

同时添加

<service android:name=".BackHelper" />

在清单

<application />代码