配置沒有界面的Activity

一般我們的activity都是有一個用來顯示內容的界面,但是有些時候並不需要界面顯示,直接在launcher點擊了應用圖標就能執行相關的功能,例如一鍵鎖屏、清理內存等等。實現這個功能其實只要將MainActivity的theme設置爲Theme.NoDisplay,並在onCreate中不去調用setContentView這個方法。按住ctrl點進去Theme.NoDisplay這個主題可以看到這個Theme配置了下面這幾項:

        <item name="windowBackground">@null</item>
        <item name="windowContentOverlay">@null</item>
        <item name="windowIsTranslucent">true</item>
        <item name="windowAnimationStyle">@null</item>
        <item name="windowDisablePreview">true</item>
        <item name="windowNoDisplay">true</item>

但是當我們的activity是繼承自AppCompatActivity時,我們的主題就需要配置一個Theme.AppCompat的兼容主題類型,這個時候我們就可以重新聲明一個style繼承自AppTheme,然後配置上面這幾項。另外還需要爲每個item加上android命名空間,否則可能會報錯:

<style name="AppTheme.NoDisplay" parent="AppTheme">
        <item name="android:windowBackground">@null</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowAnimationStyle">@null</item>
        <item name="android:windowDisablePreview">true</item>
        <item name="android:windowNoDisplay">true</item>
    </style>

然後將該style配置到不需要界面的那個activity中去。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章