2014-01-27 43 views
7

回到主題我將活動主題設置爲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標籤,您必須進行該活動。在我們的案例中,沒有關於活動的意見。所以我想讓它看不見。 –

回答

3

我想象它正在關閉,但你見沒有證據表明這是因爲它是'NoDisplay'。使用此主題的活動沒有可見的用戶界面(因此,這樣的活動處理用戶界面事件不合邏輯),因此不應保持活動狀態。看到這個問題,例如:

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

如果你想這個活動的佈局可見和處理事件,你應該使用不同的主題。另一方面,如果這是一個只做一些後臺處理的隱形Activity,則在完成該處理時,在onCreate中調用finish()以關閉它。

+1

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

-2
@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 –

-3

@覆蓋 公共無效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的主題 –