私はこのような問題のないボタンをクリックして自分の関数を呼び出すことができ、それは動作し、データも消去します。サービスからメソッドを呼び出す方法は?
public class MainActivity extends Activity implements OnCheckedChangeListener {
DevicePolicyManager devicePolicyManager;
public void resetdevice(View view) {
Toast.makeText(context, "resetttt", Toast.LENGTH_LONG).show();
// We reset the device - this will erase entire /data partition!
Log.d(TAG,
"RESETing device now - all user data will be ERASED to factory settings");
devicePolicyManager.wipeData(ACTIVATION_REQUEST);
}
しかし、このメソッドを別のサービスから呼び出すには、いくつか変更する必要があります。
public class MainActivity extends Activity implements OnCheckedChangeListener {
static DevicePolicyManager devicePolicyManager;
と私の方法ここ
public static void resetdevice(Context context) {
Toast.makeText(context, "resetttt", Toast.LENGTH_LONG).show();
// We reset the device - this will erase entire /data partition!
Log.d(TAG,
"RESETing device now - all user data will be ERASED to factory settings");
devicePolicyManager.wipeData(ACTIVATION_REQUEST);
}
iは問題がある
MainActivity.resetdevice(context);
それを呼び出す方法です私のサービスからそれを呼び出すときに、それだけでトーストを示し、そしてません残りのコードを実行します。
例外がスローされているかどうかチェックしましたか? –
私はこの行が問題の静的なDevicePolicyManagerのdevicePolicyManagerを引き起こしていると思います。 – abbie
'wipeData'メソッドを使うために' DevicePolicyManager'を初期化する必要はありませんか?私はこれに慣れていない。 –