将活动发送到背景而不完成

如何在不调用finish()方法的情况下将活动转移到后台,并返回到启动它的Parent活动? 我尝试了这么多,但我找不到解决scheme。 所以,如果你们能够帮助,我会非常感激。

Related of "将活动发送到背景而不完成"

如果活动在与其父项不同的任务中运行,以下方法将工作。 要实现这一点,请参阅http://developer.android.com/guide/topics/manifest/activity-element.html#lmode

 public void onBackPressed () { moveTaskToBack (true); } 

当前的任务将被隐藏起来,但是它的状态将保持不变,当它被重新激活时,就会像当你离开时一样。

如果您有要在后台caching/存储/处理的数据,则可以使用AsyncTask或Thread 。

当您准备好caching/转换到父项时,您可以在您的某个子项的Activity方法中执行以下操作(假设您已经使用startActivityForResult()方法启动子项)

线程方法:

 Thread t1 = new Thread(new Runnable() { @Override public void run() { // PUT YOUR CACHING CODE HERE } }); t1.start(); setResult( whatever ); finish(); 

如果您需要从新线程返回任何内容,您也可以使用处理程序 。

AsyncTask方法:

 new CacheDataTask().execute( data params ); set_result( whatever ); finish(); 

AsyncTask适用于需要在新线程中处理某些内容的情况,但能够与UI进程进行通信。

向后移动任务不会保证您将保持任何状态,除非您通过响应Activity生命周期事件手动执行此操作。

您应该使用startActivity()通过Intent启动第二个Activity ,或者如果您需要从第二个Activity接收结果,则使用startActivityForResult() 。 这允许您在用户完成Activity并返回到您的第一个Activity时收到回叫。

开始一个Activity并获得结果: http : //developer.android.com/reference/android/app/Activity.html#StartingActivities

尝试:

  Intent toNextActivity = new Intent(CurrentActivity.this, NextActivity.class); CurrentActivity.startActivity(toNextActivity); 

如果使用这种方式,则将调用CurrentActivity中的onPause()方法,如果在CurrentActivity中有一个静态variables(如MediaPlayer对象),它将继续存在(或在播放时播放)。

我在我的应用程序中使用它,但我发现了一个更好的方法来做到这一点与服务。

希望对你有帮助!

只是

protected void minimizeApp(){Intent startMain = new Intent(Intent.ACTION_MAIN); startMain.addCategory(Intent.CATEGORY_HOME); startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(startMain); }