活动不关闭当主题是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>
我想象它正在关闭,但你见没有证据表明这是因为它是'NoDisplay'。使用此主题的活动没有可见的用户界面(因此,这样的活动处理用户界面事件不合逻辑),因此不应保持活动状态。看到这个问题,例如:
how to completely get rid of an activity's GUI (avoid a black screen)
如果你想这个活动的布局可见和处理事件,你应该使用不同的主题。另一方面,如果这是一个只做一些后台处理的隐形Activity,则在完成该处理时,在onCreate中调用finish()以关闭它。
也有趣的知道:http://stackoverflow.com/a/4552127/180538 – WarrenFaith
@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
if (keyCode == KeyEvent.KEYCODE_BACK){
YourActivity.this.finish();
return true;
}
重写此方法
@覆盖 公共无效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);
}
-1仅供代码答案。 – WarrenFaith
我调试应用程序,此方法不执行设置Theme.NoDisplay的主题 –
我想它正在关闭,但你没有看到这个证据,因为它是'NoDisplay'。 2台背压机是否按照您的预期工作?为什么使用在onCreate中不完成的NoDisplay Activity?如果它没有可见的用户界面,则不应保持活动状态。你能解释一下你想在这里实现的UI /工作流程吗? – NigelK
@NigelK正如我所知要扫描NFC标签,您必须进行该活动。在我们的案例中,没有关于活动的意见。所以我想让它看不见。 –