如何强制将具有主要活动的应用程序设置为关闭

时间:2012-10-04 07:49:28

标签: android android-intent android-activity back-button home-button

我正在尝试开发适用于平板电脑(ICS 4.0.3)的应用程序,该应用程序将用于酒吧,餐厅等公共场所。

使用该平板电脑的用户(因此我的应用程序)无法进入家中,只有管理员设置代码才会出现。

我所做的是:

public class MainActivity extends Activity {
    private Activity actual;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        if (getIntent().getBooleanExtra("EXIT", false)) {
           finish(); // it doesn't work 
        }
    }
    @Override
    public void onBackPressed() {
        // do nothing!
    }
}

清单:

<activity
            android:name=".MainActivity"
            android:configChanges="orientation|keyboardHidden"
            android:label="@string/app_name"
            android:screenOrientation="landscape" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.HOME" />                 
                <category android:name="android.intent.category.DEFAULT" />               
                <category android:name="android.intent.category.MONKEY"/>
            </intent-filter>
        </activity>

行政对话:

TEST1://应用程序重新启动

Intent homeIntent= new Intent(Intent.ACTION_MAIN);
homeIntent.addCategory(Intent.CATEGORY_HOME);
homeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(homeIntent);

TEST2://重新启动应用程序

System.exit(0);

TEST3://打开设置(o.O)

Intent h = new Intent(Intent.ACTION_MAIN);
h.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
h.putExtra("EXIT", true);
context.startActivity(h);

我的问题是我不能从申请出去......我怎么解决?

1 个答案:

答案 0 :(得分:0)

在TEST3中,您只在意图中提供了ACTION_MAIN。 Android会查找可以处理此操作的应用,并找到一长串列表。怎么知道它应该推出你的?

我假设您已将应用程序设置为HOME屏幕替换。尝试将其添加到TEST3的代码中:

h.addCategory(Intent.CATEGORY_HOME);