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