java uselocalr,LocalService.java

The file containing the source code shown below is located in the corresponding directory in /samples/android-/...

/*

* Copyright (C) 2007 The Android开源工程

*

* Licensed under the Apache License, Version 2.0 (the "License");

* you may not use this file except in compliance with the License.

* You may obtain a copy of the License at

*

* http://www.apache.org/licenses/LICENSE-2.0

*

* Unless required by applicable law or agreed to in writing, software

* distributed under the License is distributed on an "AS IS" BASIS,

* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

* See the License for the specific language governing permissions and

* limitations under the License.

*/

package com.example.android.apis.app;

import android.app.Notification;

import android.app.NotificationManager;

import android.app.PendingIntent;

import android.app.Service;

import android.content.Intent;

import android.os.Binder;

import android.os.IBinder;

import android.util.Log;

import android.widget.Toast;

// Need the following import to get access to the app resources, since this

// class is in a sub-package.

import com.example.android.apis.R;

/**

* This is an example of implementing an application service that runs locally

* in the same process as the application. The {@link LocalServiceActivities.Controller}

* and {@link LocalServiceActivities.Binding} classes show how to interact with the

* service.

*

*

Notice the use of the {@link NotificationManager} when interesting things

* happen in the service. This is generally how background services should

* interact with the user, rather than doing something more disruptive such as

* calling startActivity().

*/

public class LocalService extends Service {

private NotificationManager mNM;

// Unique Identification Number for the Notification.

// We use it on Notification start, and to cancel it.

private int NOTIFICATION = R.string.local_service_started;

/**

* Class for clients to access. Because we know this service always

* runs in the same process as its clients, we don't need to deal with

* IPC.

*/

public class LocalBinder extends Binder {

LocalService getService() {

return LocalService.this;

}

}

@Override

public void onCreate() {

mNM = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);

// Display a notification about us starting. We put an icon in the status bar.

showNotification();

}

@Override

public int onStartCommand(Intent intent, int flags, int startId) {

Log.i("LocalService", "Received start id " + startId + ": " + intent);

// We want this service to continue running until it is explicitly

// stopped, so return sticky.

return START_STICKY;

}

@Override

public void onDestroy() {

// Cancel the persistent notification.

mNM.cancel(NOTIFICATION);

// Tell the user we stopped.

Toast.makeText(this, R.string.local_service_stopped, Toast.LENGTH_SHORT).show();

}

@Override

public IBinder onBind(Intent intent) {

return mBinder;

}

// This is the object that receives interactions from clients. See

// RemoteService for a more complete example.

private final IBinder mBinder = new LocalBinder();

/**

* Show a notification while this service is running.

*/

private void showNotification() {

// In this sample, we'll use the same text for the ticker and the expanded notification

CharSequence text = getText(R.string.local_service_started);

// Set the icon, scrolling text and timestamp

Notification notification = new Notification(R.drawable.stat_sample, text,

System.currentTimeMillis());

// The PendingIntent to launch our activity if the user selects this notification

PendingIntent contentIntent = PendingIntent.getActivity(this, 0,

new Intent(this, LocalServiceActivities.Controller.class), 0);

// Set the info for the views that show in the notification panel.

notification.setLatestEventInfo(this, getText(R.string.local_service_label),

text, contentIntent);

// Send the notification.

mNM.notify(NOTIFICATION, notification);

}

}

Except as noted, this content is

licensed under Creative Commons Attribution 2.5. For details and

restrictions, see the Content

License.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值