繁体   English   中英

服务中的通话活动

[英]call activity from service

之前曾被问过几次,但提供的解决方案无法解决我的问题。 我正在开发具有以下几类的应用程序:mainactivity,SMS和MService。 服务有一个计时器。 我试图在每次计时器结束时打电话给SMS发送短信。 可以请人帮我....谢谢您的考虑...

public class MService extends Service {

    private Handler HandleIt = new Handler();
    private final int INTERVAL = 60 * 1000;
    private Timer timer = new Timer();
    boolean timeout = false;


    public interface SmsService
    {
        void SmsServiceSenter();
    }



    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }





    class TimeDisplayTimerTask extends TimerTask {



        @Override
        public void run() {
            HandleIt.post(new Runnable(){
               public void run(){
                   Toast.makeText(getApplicationContext(), TextonScreen(), Toast.LENGTH_SHORT).show();
                  // Intent smsintent = new Intent(getBaseContext(), SMS.class);
                  // startService(smsintent);
               }
            });
        }


   }

    private String TextonScreen()
    {
        timeout = true;
        return "it is running";

    }
    boolean isTimeout()
    {
        return timeout;
    }



    @Override
    public void onCreate() {
        // TODO Auto-generated method stub
        super.onCreate();
        Toast.makeText(this, "Service is created", Toast.LENGTH_SHORT).show();



    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        // TODO Auto-generated method stub
        // Display the Toast Message
        Toast.makeText(this, "Start it", Toast.LENGTH_SHORT).show();
        // Execute an action after period time
        //comes from the TimeDisplayTimerTask class
        timer.scheduleAtFixedRate(new TimeDisplayTimerTask(), 0, INTERVAL);


        return super.onStartCommand(intent, flags, startId);
    }

    @Override
    public void onDestroy() {
        // Display the Toast Message
        Toast.makeText(this, "Stop it", Toast.LENGTH_SHORT).show();
        super.onDestroy();
    }


}

public class SMS extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        message();;


    }

    boolean issent = false;
    String text = "I am here";
    String num = "2085578209";
    SmsManager smsManager = SmsManager.getDefault();




    public void message()
    {
       // if(Timeout.isTimeout()) {
            smsManager.sendTextMessage(num, null, text, null, null);
            issent = true;
      //  }
    }
    boolean isSent()
    {
    return issent;
    }
}

真的很简单。 创建Intent变量后,在开始活动之前,向其添加一个标志,如下所示

Intent launch = new Intent(this, MyActivity.class);
launch.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(launch);

使用以上代码,您可以通过服务调用活动

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM