我遇到了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);
}
}
}
我有这堂课:
然后:
在后一类中,在messageArrived函数中我想调用我的测试函数(MqttClientActivity),我该怎么做呢?我已经将函数设置为static和variables" devicePolicyManager"和#34; demoDeviceAdmin"静止的,但我无法启动活动...
任何人都可以帮助我?
由于
答案 0 :(得分:2)
首先,您无法从startActivityForResult()
致电Service
。最好,您可以从startActivity()
。
Service
其次,您无法通过startActivity()
方法拨打startActivityForResult()
(或static
),除非在Context
上调用Activity
或startActivityForResult()
{ {1}}),因为那些不是static
方法。