导航:首页 > 操作系统 > androidservice开发

androidservice开发

发布时间:2024-11-08 10:09:10

android开发 service 和activity 广播问题

这里我们先假定service发出内容时候的Action为ActionS。


如果activity里没有动态注册监听service发出的ActionS的广播, 即使Activity当前在使用中也不会得到通知, 更不用说未启动的Activity来捕获这个通知了。


要捕获这个字符串有两种方式, 分别如下

  1. 在AndroidManifest.xml中注册
    <receiver android:name="YourBroadcastReceiver" >
    <intent-filter>
    <action android:name="ActionS" />
    </intent-filter>
    </receiver>
    这样, 一旦有定义的ActionS发出来,YourBroadcastReceiver的onReceive方法就会回调了,这样的监听,不需要你的app已经在运行。你在onReceive方法里拦截处理。


2.在Activity中动态创建监听器, onCreate()中生成一个IntentFilter对象

IntentFilter filter=new IntentFilter();
//为IntentFilter添加一个ActionS

filter.addAction(ActionS);
yourBroadcastReceiver = newYourBroadcastReceiver();

registerReceiver(yourBroadcastReceiver, filter);


在onDestroy的时候去注册
unregisterReceiver(yourBroadcastReceiver);
这样的方式只有在Activity生命周期onCreate()-onDestroy()之间有效, 在YourBroadcastReceiver.onReceive()方法里拦截处理。

⑵ Android开发怎么调试Service

Android开发如何调试Service

Android 开发中,添加代码对Service 进行调试 。

介绍
以调试 模式启动Android 项目时,在service 中设置断点,调试 器不会停止下来
解决方法
所有的这种情况下,都是在代码中声明。调用的方法是:

android.os.Debug.waitForDebugger();

举个例子,SoftKeyboard:

public class SoftKeyboard extends InputMethodService implements KeyboardView.OnKeyboardActionListener { @Override public void onConfigurationChanged(Configuration newConfig) { Log.d("SoftKeyboard", "onConfigurationChanged()"); /* now let's wait until the debugger attaches */ android.os.Debug.waitForDebugger(); super.onConfigurationChanged(newConfig); /* do something useful... */ }

代码中你可以看到,首先是调用了日志记录器logger,代码运行到这里时,会将在logcat中添加一条记录,这是跟踪代码运行的一种方法,如果不需要在断点上停止时可以使用。但通常为了更详细的调试 ,这是不足够的。
第二条语句等待添加调试 器,添加了这条语句之后,可以在这个方法的任何地方添加断点。
Activity也是应用的部分时调试 Service 就更加容易了。那种情况下,首先需要启动Activity,调试 器也可以在Service 的断点中停止下来,不需要调用 waitForDebugger()。

⑶ 怎么开发android service 开机启动

第一步:首先创建一个广播接收者,重构其抽象方法 onReceive(Context context, Intent intent),在其中启动你想要启动的Service或app。
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class BootBroadcastReceiver extends BroadcastReceiver {
//重写onReceive方法
@Override
public void onReceive(Context context, Intent intent) {
//后边的XXX.class就是要启动的服务
Intent service = new Intent(context,XXXclass);
context.startService(service);
Log.v("TAG", "开机自动服务自动启动.....");
//启动应用,参数为需要自动启动的应用的包名
Intent intent = getPackageManager().getLaunchIntentForPackage(packageName);
context.startActivity(intent );
}

}
第二步:配置xml文件,在receiver接收这种添加intent-filter配置
<receiver android:name="BootBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"></action>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</receiver>
第三步:添加权限 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

阅读全文

与androidservice开发相关的资料

热点内容
单片机串行通信方式 浏览:488
android表格demo 浏览:266
安卓怎么让相册不显示网页 浏览:303
php文件系统源码 浏览:716
易信java 浏览:489
北仑二级压缩螺杆机 浏览:52
加密路线免费入口 浏览:747
计算器程序员是干嘛的 浏览:363
数控编程里fo是啥键 浏览:663
javacdataxml 浏览:952
本机tcp服务器地址 浏览:435
切换pdf 浏览:100
iturns下载的app在哪里 浏览:649
云起书院App在哪里 浏览:623
怎么对hex文件进行加密 浏览:294
pdf少年时 浏览:963
两个同名文件夹同步 浏览:639
拍照文件夹哪个好用 浏览:99
文件夹和书包 浏览:519
解压归档拿登记证 浏览:233