优秀的手机游戏下载!
首页 OnReceive()怎么用,应写在那里?

OnReceive()怎么用,应写在那里?

发布时间:2024-06-11 10:59:03 编辑:手游帝 浏览:573

首先Service、Broadcast Receiver、Content Provider都是运行在UI线程,或者说主线程中的,就是启动一个Activity时开始运行的那个进程。但是Broadcast Receiver不像Service,生命周期较短,耗时操作你不能在onReceive中执行的,比如你试试在其中启动一个对话框看看,会报错的。可能是这个原因导致你加上延迟后没有更新文字。还有,要加上执行完调用timer.cancel()结束任务。如果简单的想五秒后执行,直接用Thread,在run方法中sleep(5000)就可以了。代码如下:

new Thread(){

@Override

public void run() {

super.run()

try {

sleep(5000)

} catch (InterruptedException e) {

e.printStackTrace()

}

String text=””

List&ltString&gtconfig = loadArray()

for(int i=0i&ltconfig.size()i++){

//am.killBackgroundProcesses(config.get(i))

text+=config.get(i)+”\n\r”

}

OnReceive()怎么用,应写在那里?

text+=”off”

tv_show.setText(text)

}

}.start()

直接加到onReceive方法中就行了。

为什么onReceive不会执行呢?

Android怎么给onReceive()函数传参数有几种解决办法

解决方案1:

该函数是系统回调函数,不是给你调用的,你需要调用sendBroadcast(Intent o)

解决方案2:

这是个广播接收器,用来接收广播的,可以通过intent来获取广播传过来的值

解决方案3:

解决方案4:

发送广播消息是通过Context.sendBroadcast(intent)

intent中附加要传递的值

代码好像是没什么问题,不过可以修改一下:public class Test extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState)setContentView(R.layout.main)IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_OFF)registerReceiver(new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { System.out.println(“Screen off……………….”)} }, filter)}@Overrideprotected void onResume() { super.onResume()System.out.println(“onResume()”)}@Overrideprotected void onDestroy() { super.onDestroy()System.out.println(“onDestroy()”)}@Overrideprotected void onPause() { super.onPause()System.out.println(“onPause()”)}

以上就是关于OnReceive()怎么用,应写在那里?全部的内容,如果了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

更多相关资讯

首先Service、Broadcast Receiver、Content Provider都是运行在UI线程,或者说主线程中的,就是启动一个Activity时开…
查看详情
首先Service、Broadcast Receiver、Content Provider都是运行在UI线程,或者说主线程中的,就是启动一个Activity时开…
查看详情
首先Service、Broadcast Receiver、Content Provider都是运行在UI线程,或者说主线程中的,就是启动一个Activity时开…
查看详情
相关资讯
猜你喜欢