1

我正在开发一个应用程序,当访问默认的 Android 选项时,我想在其中运行一些服务,即当访问播放音乐或画廊时生成一个Toast等等......可以这样做吗?这是我的代码。

这是我在 Main 开始服务的地方Activity

if(autoBrightOn){
  startService(new Intent(this, MyService.class));
}

和我的Service.class

public class MyService extends Service {
    private static final String TAG = "MyService";

    @Override
    public IBinder onBind(Intent intent) {
        Log.w(" ibinder ","");
        return null;
    }

    @Override
    public void onCreate() {
//        Toast.makeText(this, "My Service Created",0).show();
        Log.w(TAG, "onCreate");

            }

   @Override
    public void onDestroy() {
//        Toast.makeText(this, "My Service Stopped",0).show();
//        Log.w(TAG, "onDestroy");
//        player.stop();
    }

    @Override
    public void onStart(Intent intent, int startid) {
        Toast.makeText(this, "My Service Started :"+intent+" start id :"+startid,0).show();
//        Log.d(TAG, "onStart");
//        player.start();

        Intent intentBrowseFiles = new Intent(Intent.ACTION_VIEW);
      intentBrowseFiles.setType("image/*");
      intentBrowseFiles.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
      startActivity(intentBrowseFiles);                   

    }
4

2 回答 2

3

您可以创建一个自定义BroadcastReceiver并监听不同Intent的 s 发出。似乎没有“包罗万象” ACTIVITY_STARTED,因此您可能需要创建一个非常详细的Intents 列表来收听。这是AndroidIntent参考:

http://developer.android.com/reference/android/content/Intent.html

于 2012-07-23T21:52:38.970 回答
2

是的。创建一个扩展 Service 的类并覆盖 onCreate()、onDestroy() 和 onBind() 方法。在你的主要清单中,把

<service android:name=".GameServerService"/>

,但将 .GameServerService 替换为您的服务名称。然后在你的主要课程中,输入:

Intent gameServerService = new Intent(this, GameServerService.class);

利用

this.startService(gameServerService);

this.stopService(gameServerService);

如所须。祝你好运!

于 2012-07-23T21:39:55.637 回答