Android 创建菜单时启动应用程序

Android 创建菜单时启动应用程序,android,tabs,barcode,Android,Tabs,Barcode,我正在使用一个应用程序来读取我正在开发的应用程序中的二维码(条形码)。我的问题是,我不希望在创建菜单时启动条形码(选项卡活动)。 要明确的是:我是这样创建菜单的 public void createMenu(int current) { Resources res = getResources(); // Resource object to get Drawables TabHost tabHost = getTabHost(); // The activity TabHost

我正在使用一个应用程序来读取我正在开发的应用程序中的二维码(条形码)。我的问题是,我不希望在创建菜单时启动条形码(选项卡活动)。 要明确的是:我是这样创建菜单的

public void createMenu(int current) {
    Resources res = getResources(); // Resource object to get Drawables
    TabHost tabHost = getTabHost(); // The activity TabHost
    TabHost.TabSpec spec;   // Resusable TabSpec for each tab
    Intent intent;  


    intent = new Intent().setClass(this, Scan.class);
    spec = tabHost.newTabSpec("scanner").setIndicator(null,res.getDrawable(R.drawable.barcode_scan)).setContent(intent);
    tabHost.addTab(spec);


    // Do the same for the other tabs
    intent = new Intent().setClass(this, Research.class);
    spec = tabHost.newTabSpec("research").setIndicator(null,
                              res.getDrawable(R.drawable.system_search))
                              .setContent(intent);
    tabHost.addTab(spec);
}
在Scan类中,我有以下内容:

@Override
public void onStart(){
    super.onStart();
    setContentView(R.layout.scan);
    try {
        Intent intent = new Intent("com.google.zxing.client.android.SCAN");
        intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); // "PRODUCT_MODE for bar codes
        startActivityForResult(intent, 0);
    } catch (Exception e) {
        Uri marketUri = Uri.parse("market://details?id=com.google.zxing.client.android");
        Intent marketIntent = new Intent(Intent.ACTION_VIEW,marketUri);
        startActivity(marketIntent);

    }
}
但是,在菜单的cration处,条形码应用程序每次都会启动,即使选择的当前选项卡不是扫描仪选项卡,也会跳过菜单显示。如何解决这个问题

谢谢

       @Override
    public void onStart(){
        super.onStart();
        setContentView(R.layout.scan);
        try {
            Intent intent = new Intent("com.google.zxing.client.android.SCAN");
            intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); // "PRODUCT_MODE for bar codes
            startActivityForResult(intent, 0);
        } catch (Exception e) {
            Uri marketUri = Uri.parse("market://details?id=com.google.zxing.client.android");
            Intent marketIntent = new Intent(Intent.ACTION_VIEW,marketUri);
            startActivity(marketIntent);

        }
}
将此更改为

@凌驾

public void onStart(){
    super.onStart();
    setContentView(R.layout.scan);

}

我将onStart方法更改为onResume,这很有效。这是一个好主意还是一个坏把戏?