startActivityForResult

startActivityForResult

我对startActivityForResult函数有问题。

我有一个活动MqttClientActivity

public class MqttClientActivity extends Activity {

    static final int ACTIVATION_REQUEST = 47; // identifies our request id

    private static Context context;

    static DevicePolicyManager devicePolicyManager;
    static ComponentName demoDeviceAdmin;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        MqttClientActivity.context = getApplicationContext();

        // Initialize Device Policy Manager service and our receiver class
        devicePolicyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
        demoDeviceAdmin = new ComponentName(this, DemoDeviceAdminReceiver.class);
    }

    public static void test() {
        boolean active = devicePolicyManager.isAdminActive(demoDeviceAdmin);
        if (active) {
                         //do something...
        }
        else {
            // Activate device administration
            Intent intent = new Intent(
                    DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
            intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,
                    demoDeviceAdmin);
            intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
                    "Your boss told you to do this");
            startActivityForResult(intent, ACTIVATION_REQUEST);
        }
    }
}


我有这堂课:

https://github.com/dobermai/android-mqtt-push/blob/master/src/de/eclipsemagazin/mqtt/push/MQTTService.java

然后 :

https://github.com/dobermai/android-mqtt-push/blob/master/src/de/eclipsemagazin/mqtt/push/PushCallback.java

在后一个类中,在messageArrived函数中,我想调用测试函数(MqttClientActivity),该怎么做?我已经将函数设置为静态,并将变量“ devicePolicyManager”和“ demoDeviceAdmin”设置为静态,但是我无法启动活动性...

有人可以帮助我吗?

谢谢

最佳答案

首先,您不能从startActivityForResult()调用Service。充其量,您可以从startActivity()调用Service

其次,您不能从startActivity()方法调用startActivityForResult()(或static),除非在Context(或ActivitystartActivityForResult())上调用它,因为它们不是static方法。

关于java - 在服务中使用startActivityForResult启动 Activity ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23659729/

10-08 21:54