如何创建广播接收器?

时间:2019-07-03 17:06:00

标签: java android android-intent broadcast receiver

这是我第一次使用stackoverflow 我正在创建一个聊天程序,但仅编码广播接收器并接收消息通知。我出于自己的意图创建了一个exampleapp,但仅在打开该应用时才有效。我如何简单地创建广播接收器?

我没有收到错误消息

我的MainActivity:

package com.example.backgroundservice;

import android.app.Activity;
import android.os.Bundle;

import android.content.Intent;
import android.widget.Toast;

import com.example.backgroundservice.R;

public class MainActivity extends Activity {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  startService(new Intent(this, BackgroundService.class));

  Toast.makeText(this, "Intent Başladı!", Toast.LENGTH_LONG).show();

 }

}

(我没有添加其他代码,因为我遇到了错误,并且由于我在android上进行编码而无法解决)

1 个答案:

答案 0 :(得分:0)

我的意图:


import android.app.Service;
import android.content.*;
import android.os.*;
import android.widget.Toast;

public class BackgroundService extends Service {

    public Context context = this;
    public Handler handler = null;
    public static Runnable runnable = null;

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onCreate() {
        Toast.makeText(this, "Service created!", Toast.LENGTH_LONG).show();

        handler = new Handler();
        runnable = new Runnable() {
            public void run() {
                Toast.makeText(context, "Service is still running", Toast.LENGTH_LONG).show();
                handler.postDelayed(runnable, 10000);
            }
        };

        handler.postDelayed(runnable, 15000);
    }

    @Override
    public void onDestroy() {
        /* IF YOU WANT THIS SERVICE KILLED WITH THE APP THEN UNCOMMENT THE FOLLOWING LINE */
        //handler.removeCallbacks(runnable);
        Toast.makeText(this, "Service stopped", Toast.LENGTH_LONG).show();
    }

    @Override
    public void onStart(Intent intent, int startid) {
        Toast.makeText(this, "Service started by user.", Toast.LENGTH_LONG).show();
    }
}```