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

N S*_*rma 7 android android-activity

我将活动主题设置为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;
    }
}
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

Nig*_*elK 3

我想它正在关闭,但你看不到任何证据,因为它是“NoDisplay”。使用此主题的 Activity 没有可见的 UI(因此此类 Activity 处理 UI 事件是不合逻辑的),并且不应保持活动状态。例如看这个问题:

如何完全摆脱 Activity 的 GUI(避免黑屏)

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