当主题为Theme.NoDisplay时,活动未关闭

我将Activity Theme设置为Theme.NoDisplay但是当它打开但按下后按钮Activity不关闭/销毁。 它应该在背压时关闭/销毁。

伙计们帮助我为什么会这样,以及解决这个问题的任何解决办法。

 public class MainActivity extends Activity { // Tag of the Activity private static String TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); DatabaseManager.init(this); NFCIItem mNFCItem = new NFCIItem(); mNFCItem.setSerialNumber(1); DatabaseManager.getInstance().addWishList(mNFCItem); final List wishLists = DatabaseManager.getInstance().getAllNFCSerialNumber(); Log.v(TAG, wishLists.toString()); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } } 

AndroidManifest.xml中

       

我想它已经结束但你没有看到这个的证据,因为它是’NoDisplay’。 使用此主题的Activity没有可见的UI(因此,这样的Activity处理UI事件不合逻辑)并且不应该保持活动状态。 例如,请参阅此问题:

如何彻底摆脱活动的GUI(避免黑屏)

如果您确实希望此Activity的布局可见并处理事件,则应使用其他主题。 如果另一方面,这是一个不可见的Activity,它只进行一些后台处理,请在onCreate中调用finish()以在完成该处理时关闭它。

 @Override public boolean onKeyDown(int keyCode, KeyEvent event){ if (keyCode == KeyEvent.KEYCODE_BACK){ YourActivity.this.finish(); return true; } 

覆盖此方法

@Override public void onBackPressed(){

  Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); finish(); overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_right); }