1714abd365ca764c4da9fa3302064006081da8a6aKurt Nelsonpackage android.os; 2714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson 3714abd365ca764c4da9fa3302064006081da8a6aKurt Nelsonimport android.app.Service; 4714abd365ca764c4da9fa3302064006081da8a6aKurt Nelsonimport android.content.Intent; 5714abd365ca764c4da9fa3302064006081da8a6aKurt Nelsonimport java.io.File; 6714abd365ca764c4da9fa3302064006081da8a6aKurt Nelsonimport java.io.IOException; 7714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson 8714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson/** Service in separate process available for calling over binder. */ 9714abd365ca764c4da9fa3302064006081da8a6aKurt Nelsonpublic class SomeService extends Service { 10714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson 11714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson private File mTempFile; 12714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson 13714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson @Override 14714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson public void onCreate() { 15714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson super.onCreate(); 16714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson try { 17714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson mTempFile = File.createTempFile("foo", "bar"); 18714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson } catch (IOException e) { 19714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson throw new RuntimeException(e); 20714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson } 21714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson } 22714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson 23714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson private final ISomeService.Stub mBinder = 24714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson new ISomeService.Stub() { 25714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson public void readDisk(int times) { 26714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson for (int i = 0; i < times; i++) { 27714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson mTempFile.exists(); 28714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson } 29714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson } 30714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson }; 31714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson 32714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson @Override 33714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson public IBinder onBind(Intent intent) { 34714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson return mBinder; 35714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson } 36714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson 37714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson @Override 38714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson public void onDestroy() { 39714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson super.onDestroy(); 40714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson mTempFile.delete(); 41714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson } 42714abd365ca764c4da9fa3302064006081da8a6aKurt Nelson} 43