Loading api/current.xml +22 −0 Original line number Diff line number Diff line Loading @@ -1013,6 +1013,17 @@ visibility="public" > </field> <field name="SHUTDOWN" type="java.lang.String" transient="false" volatile="false" value=""android.permission.SHUTDOWN"" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="SIGNAL_PERSISTENT_PROCESSES" type="java.lang.String" transient="false" Loading Loading @@ -31028,6 +31039,17 @@ visibility="public" > </field> <field name="ACTION_SHUTDOWN" type="java.lang.String" transient="false" volatile="false" value=""android.intent.action.ACTION_SHUTDOWN"" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="ACTION_SYNC" type="java.lang.String" transient="false" core/java/android/app/ActivityManagerNative.java +22 −0 Original line number Diff line number Diff line Loading @@ -990,6 +990,14 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM return true; } case SHUTDOWN_TRANSACTION: { data.enforceInterface(IActivityManager.descriptor); boolean res = shutdown(data.readInt()); reply.writeNoException(); reply.writeInt(res ? 1 : 0); return true; } case PEEK_SERVICE_TRANSACTION: { data.enforceInterface(IActivityManager.descriptor); Intent service = Intent.CREATOR.createFromParcel(data); Loading Loading @@ -2160,5 +2168,19 @@ class ActivityManagerProxy implements IActivityManager return res; } public boolean shutdown(int timeout) throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); data.writeInterfaceToken(IActivityManager.descriptor); data.writeInt(timeout); mRemote.transact(SHUTDOWN_TRANSACTION, data, reply, 0); reply.readException(); boolean res = reply.readInt() != 0; reply.recycle(); data.recycle(); return res; } private IBinder mRemote; } core/java/android/app/IActivityManager.java +3 −2 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package android.app; import android.app.ActivityManager.MemoryInfo; import android.content.ComponentName; import android.content.ContentProviderNative; import android.content.IContentProvider; Loading @@ -34,7 +33,6 @@ import android.os.IInterface; import android.os.Parcel; import android.os.Parcelable; import android.os.ParcelFileDescriptor; import android.text.TextUtils; import android.os.Bundle; import java.util.List; Loading Loading @@ -225,6 +223,8 @@ public interface IActivityManager extends IInterface { public boolean profileControl(String process, boolean start, String path) throws RemoteException; public boolean shutdown(int timeout) throws RemoteException; /* * Private non-Binder interfaces */ Loading Loading @@ -370,4 +370,5 @@ public interface IActivityManager extends IInterface { int GET_DEVICE_CONFIGURATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+83; int PEEK_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+84; int PROFILE_CONTROL_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+85; int SHUTDOWN_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+86; } core/java/android/content/Intent.java +10 −0 Original line number Diff line number Diff line Loading @@ -510,6 +510,7 @@ import java.util.Set; * <li> {@link #ACTION_BATTERY_CHANGED} * <li> {@link #ACTION_POWER_CONNECTED} * <li> {@link #ACTION_POWER_DISCONNECTED} * <li> {@link #ACTION_SHUTDOWN} * </ul> * * <h3>Standard Categories</h3> Loading Loading @@ -1270,6 +1271,15 @@ public class Intent implements Parcelable { @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) public static final String ACTION_POWER_DISCONNECTED = "android.intent.action.POWER_DISCONNECTED"; /** * Broadcast Action: Device is shutting down. * This is broadcast when the device is being shut down (completely turned * off, not sleeping). Once the broadcast is complete, the final shutdown * will proceed and all unsaved data lost. Apps will not normally need * to handle this, since the forground activity will be paused as well. */ @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) public static final String ACTION_SHUTDOWN = "android.intent.action.ACTION_SHUTDOWN"; /** * Broadcast Action: Indicates low memory condition on the device */ Loading core/java/android/content/SyncManager.java +12 −0 Original line number Diff line number Diff line Loading @@ -255,6 +255,14 @@ class SyncManager implements OnAccountsUpdatedListener { } }; private BroadcastReceiver mShutdownIntentReceiver = new BroadcastReceiver() { public void onReceive(Context context, Intent intent) { Log.w(TAG, "Writing sync state before shutdown..."); getSyncStorageEngine().writeAllState(); } }; private static final String ACTION_SYNC_ALARM = "android.content.syncmanager.SYNC_ALARM"; private static final String SYNC_POLL_ALARM = "android.content.syncmanager.SYNC_POLL_ALARM"; private final SyncHandler mSyncHandler; Loading Loading @@ -301,6 +309,10 @@ class SyncManager implements OnAccountsUpdatedListener { intentFilter.addAction(Intent.ACTION_DEVICE_STORAGE_OK); context.registerReceiver(mStorageIntentReceiver, intentFilter); intentFilter = new IntentFilter(Intent.ACTION_SHUTDOWN); intentFilter.setPriority(100); context.registerReceiver(mShutdownIntentReceiver, intentFilter); if (!factoryTest) { mNotificationMgr = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); Loading Loading
api/current.xml +22 −0 Original line number Diff line number Diff line Loading @@ -1013,6 +1013,17 @@ visibility="public" > </field> <field name="SHUTDOWN" type="java.lang.String" transient="false" volatile="false" value=""android.permission.SHUTDOWN"" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="SIGNAL_PERSISTENT_PROCESSES" type="java.lang.String" transient="false" Loading Loading @@ -31028,6 +31039,17 @@ visibility="public" > </field> <field name="ACTION_SHUTDOWN" type="java.lang.String" transient="false" volatile="false" value=""android.intent.action.ACTION_SHUTDOWN"" static="true" final="true" deprecated="not deprecated" visibility="public" > </field> <field name="ACTION_SYNC" type="java.lang.String" transient="false"
core/java/android/app/ActivityManagerNative.java +22 −0 Original line number Diff line number Diff line Loading @@ -990,6 +990,14 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM return true; } case SHUTDOWN_TRANSACTION: { data.enforceInterface(IActivityManager.descriptor); boolean res = shutdown(data.readInt()); reply.writeNoException(); reply.writeInt(res ? 1 : 0); return true; } case PEEK_SERVICE_TRANSACTION: { data.enforceInterface(IActivityManager.descriptor); Intent service = Intent.CREATOR.createFromParcel(data); Loading Loading @@ -2160,5 +2168,19 @@ class ActivityManagerProxy implements IActivityManager return res; } public boolean shutdown(int timeout) throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); data.writeInterfaceToken(IActivityManager.descriptor); data.writeInt(timeout); mRemote.transact(SHUTDOWN_TRANSACTION, data, reply, 0); reply.readException(); boolean res = reply.readInt() != 0; reply.recycle(); data.recycle(); return res; } private IBinder mRemote; }
core/java/android/app/IActivityManager.java +3 −2 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package android.app; import android.app.ActivityManager.MemoryInfo; import android.content.ComponentName; import android.content.ContentProviderNative; import android.content.IContentProvider; Loading @@ -34,7 +33,6 @@ import android.os.IInterface; import android.os.Parcel; import android.os.Parcelable; import android.os.ParcelFileDescriptor; import android.text.TextUtils; import android.os.Bundle; import java.util.List; Loading Loading @@ -225,6 +223,8 @@ public interface IActivityManager extends IInterface { public boolean profileControl(String process, boolean start, String path) throws RemoteException; public boolean shutdown(int timeout) throws RemoteException; /* * Private non-Binder interfaces */ Loading Loading @@ -370,4 +370,5 @@ public interface IActivityManager extends IInterface { int GET_DEVICE_CONFIGURATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+83; int PEEK_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+84; int PROFILE_CONTROL_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+85; int SHUTDOWN_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+86; }
core/java/android/content/Intent.java +10 −0 Original line number Diff line number Diff line Loading @@ -510,6 +510,7 @@ import java.util.Set; * <li> {@link #ACTION_BATTERY_CHANGED} * <li> {@link #ACTION_POWER_CONNECTED} * <li> {@link #ACTION_POWER_DISCONNECTED} * <li> {@link #ACTION_SHUTDOWN} * </ul> * * <h3>Standard Categories</h3> Loading Loading @@ -1270,6 +1271,15 @@ public class Intent implements Parcelable { @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) public static final String ACTION_POWER_DISCONNECTED = "android.intent.action.POWER_DISCONNECTED"; /** * Broadcast Action: Device is shutting down. * This is broadcast when the device is being shut down (completely turned * off, not sleeping). Once the broadcast is complete, the final shutdown * will proceed and all unsaved data lost. Apps will not normally need * to handle this, since the forground activity will be paused as well. */ @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) public static final String ACTION_SHUTDOWN = "android.intent.action.ACTION_SHUTDOWN"; /** * Broadcast Action: Indicates low memory condition on the device */ Loading
core/java/android/content/SyncManager.java +12 −0 Original line number Diff line number Diff line Loading @@ -255,6 +255,14 @@ class SyncManager implements OnAccountsUpdatedListener { } }; private BroadcastReceiver mShutdownIntentReceiver = new BroadcastReceiver() { public void onReceive(Context context, Intent intent) { Log.w(TAG, "Writing sync state before shutdown..."); getSyncStorageEngine().writeAllState(); } }; private static final String ACTION_SYNC_ALARM = "android.content.syncmanager.SYNC_ALARM"; private static final String SYNC_POLL_ALARM = "android.content.syncmanager.SYNC_POLL_ALARM"; private final SyncHandler mSyncHandler; Loading Loading @@ -301,6 +309,10 @@ class SyncManager implements OnAccountsUpdatedListener { intentFilter.addAction(Intent.ACTION_DEVICE_STORAGE_OK); context.registerReceiver(mStorageIntentReceiver, intentFilter); intentFilter = new IntentFilter(Intent.ACTION_SHUTDOWN); intentFilter.setPriority(100); context.registerReceiver(mShutdownIntentReceiver, intentFilter); if (!factoryTest) { mNotificationMgr = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); Loading