活动不关闭当主题是Theme.NoDisplay

问题描述:

回到主题我将活动主题设置为Theme.NoDisplay但是当它打开但按下后退按钮活动不关闭/销毁。它应该关闭/摧毁后面的新闻。活动不关闭当主题是Theme.NoDisplay

伙计们帮我解释为什么这样以及任何解决方案来解决这个问题。

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<NFCIItem> 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中

<activity 
    android:name="com.example.appdemo.MainActivity" 
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.NoDisplay" > 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 

     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 
+0

我想它正在关闭,但你没有看到这个证据,因为它是'NoDisplay'。 2台背压机是否按照您的预期工作?为什么使用在onCreate中不完成的NoDisplay Activity?如果它没有可见的用户界面,则不应保持活动状态。你能解释一下你想在这里实现的UI /工作流程吗? – NigelK

+0

@NigelK正如我所知要扫描NFC标签,您必须进行该活动。在我们的案例中,没有关于活动的意见。所以我想让它看不见。 –

我想象它正在关闭,但你见没有证据表明这是因为它是'NoDisplay'。使用此主题的活动没有可见的用户界面(因此,这样的活动处理用户界面事件不合逻辑),因此不应保持活动状态。看到这个问题,例如:

how to completely get rid of an activity's GUI (avoid a black screen)

如果你想这个活动的布局可见和处理事件,你应该使用不同的主题。另一方面,如果这是一个只做一些后台处理的隐形Activity,则在完成该处理时,在onCreate中调用finish()以关闭它。

+1

也有趣的知道:http://*.com/a/4552127/180538 – WarrenFaith

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

      return true; 
     } 

重写此方法

+1

-1仅供代码解答。 – WarrenFaith

+0

WarrenFaith:嘿这是什么问题.. ??? –

+0

我调试的应用程序,此方法不执行设置主题为Theme.NoDisplay –

@覆盖 公共无效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); 
          } 
+2

-1仅供代码答案。 – WarrenFaith

+0

我调试应用程序,此方法不执行设置Theme.NoDisplay的主题 –