美文网首页IT部落Android开发Android技术知识
Android卸载监听之后访问后台或者弹出一个网页

Android卸载监听之后访问后台或者弹出一个网页

作者: 木木00 | 来源:发表于2017-03-31 10:12 被阅读103次

    文章来源:微信公众号  Android开发中文站

    1,我用的广播,事实证明这货一点用都没有

    2,第二个,在网上找的一些资料,fock出一个C线程,因为当时我用的是6.0的机子当的测试机,一点反应都没有,后来想是不是android版本的原因,于是乎下了一个4.2的模拟器,妈蛋,网页竟然弹出来了,我也就无语了,这让我如何去爱你

    3,最后一个,想到了android里面的FileObserve,文件监听者,本文就是讲如何使用FileObserve

    直接上代码

    public class SDCardListener extends FileObserver {

    private String path;

    private final Context mContext;

    private String url="http://www.baidu.com";

    public SDCardListener(String parentpath, Context context) {

    super(parentpath);

    this.path= parentpath;

    this.mContext = context;

    }

    @Override

    public void onEvent(int event, String path) {

    int action = event & FileObserver.ALL_EVENTS;

    switch (action) {

    case FileObserver.DELETE:

    doPost();

    break;

    }

    }

    //应用卸载后打开一个网页的方法

    protected void openBrowser() {

    Uri uri = Uri.parse(url);

    Intent intent = new Intent(Intent.ACTION_VIEW, uri);

    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    mContext.startActivity(intent);

    }

    /**

    * 通过get方式提交,请求后台

    * */

    public void doPost(){

    //获得用户的信息

    try {

    SharedPreferences sharedPreferences = mContext.getSharedPreferences("loginUser",

    Activity.MODE_PRIVATE);

    String userData = sharedPreferences.getString("loginJson", "");

    Log.e("userData:", userData);

    if (!userData.equals("")) {

    JSONObject jsonObject = new JSONObject(userData);

    String user_id = jsonObject.getString("user_id");

    String httpurl=url+"?"+"user_id="+user_id;

    OkHttpUtils.get()

    .url(httpurl)

    .build()

    .execute(new StringCallback() {

    @Override

    public void onError(Call call, Exception e, int id) {

    }

    @Override

    public void onResponse(String response, int id) {

    }

    });

    }else {

    return;

    }

    }catch(Exception e){

    e.printStackTrace();

    }

    }}

    public class UnInstallServer extends Service {

    SDCardListener[] listenners;

    @SuppressLint("SdCardPath")

    @Override

    public void onCreate() {

    SDCardListener[] listenners = {

    new SDCardListener("/data/data/com.lilei.uninstall", this),

    new SDCardListener(Environment.getExternalStorageDirectory() + File.separator + "test.txt", this) };

    this.listenners = listenners;

    for (SDCardListener listener : listenners) {

    listener.startWatching();

    }

    File file = new File(Environment.getExternalStorageDirectory() + File.separator + "test.txt");

    if (file.exists())

    file.delete();

    }

    @Override

    public void onDestroy() {

    for (SDCardListener listener : listenners) {

    listener.stopWatching();

    }

    }

    @Override

    public IBinder onBind(Intent intent) {

    return null;

    }}

    没错,只要这两个类,就可以监听到应用被卸载

    这是在网上看到的一位作者写的代码,修改了一些,不过忘了地址了,在此感谢

    注意:

    1.在Manifest里面开启UnInstallServer这个服务,我是在进入应用的 第一个Activity里面初始化的,这个自己看着办

    2.代码里用到了OkHttp访问后台,这里贴上地址http://pan.baidu.com/s/1eRQ780y

    直接导入就可以

    原文链接:http://www.jianshu.com/p/180b79b57b3f

    相关文章

      网友评论

        本文标题:Android卸载监听之后访问后台或者弹出一个网页

        本文链接:https://www.haomeiwen.com/subject/mqimottx.html