0

我正在尝试为平板电脑(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: // 打开设置 (oO)

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

我的问题是我无法退出应用程序..我该如何解决?

4

1 回答 1

0

在 TEST3 中,您仅ACTION_MAIN在 Intent 中提供。Android 会寻找可以处理此操作的应用程序并找到一长串。它怎么知道它应该启动你的?

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

h.addCategory(Intent.CATEGORY_HOME);
于 2012-10-04T09:13:51.427 回答