1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > android仿qq强制下线服务器 qq强制下线(实现一个类似QQ的强制下线功能)

android仿qq强制下线服务器 qq强制下线(实现一个类似QQ的强制下线功能)

时间:2019-02-02 10:41:51

相关推荐

android仿qq强制下线服务器 qq强制下线(实现一个类似QQ的强制下线功能)

qq强制下线(实现一个类似QQ的强制下线功能),哪吒游戏网给大家带来详细的qq强制下线(实现一个类似QQ的强制下线功能)介绍,大家可以阅读一下,希望这篇qq强制下线(实现一个类似QQ的强制下线功能)可以给你带来参考价值。

此处UI界面并不会写的很好看,就是一个简单的类似于强制下线功能,要用到的类如下:

这些类的主要做用:

此处要注意的是MainActivity,LoginActivity都是继承BaseActivity的,因为BaseActivity是继承AppCompatActivity的qq强制下线,所以并不会影响这两个活动的正常使用。

将主活动设置为LoginActivityqq强制下线,就是应用启动打开的第一个界面是LoginActivity的内容。

代码如下:

ActivityCollector:

/**

* 此类用来管理活动

*/

public class ActivityCollector {

// 创建一个Activity的列表

public static List activities = new ArrayList<>();

// 添加activity到activities中去

public static void addActivity(Activity activity) {

activities.add(activity);

}

// 将activity从activities中移除

public static void removeActivity(Activity activity) {

activities.remove(activity);

}

// 销毁所有的Activity,也就是将activities中的activity都移除

public static void finishAll() {

for (Activity activity : activities) {

if (!activity.isFinishing()) {

activity.finish();

}

}

}

}

BaseActivity:

/**

* 将此类做为所有Activity的父类,就可以轻松的管理Activity了

*/

public class BaseActivity extends AppCompatActivity {

private ForceOfflineReceiver forceOfflineReceiver;

@Override

protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//将继承BaseActivity类的Activity添加到ActivityCollector的列表中去

ActivityCollector.addActivity(this);

}

@Override

protected void onDestroy() {

super.onDestroy();

// 将销毁的Activity从列表中移除

ActivityCollector.removeActivity(this);

}

/**

* 在应用重新开始时注册广播接收器

* 在应用暂停时取消注册广播接收器

* 这样的好处是始终保证只有处于栈顶的活动才能接收到com.my.force_line这条广播

*/

// 应用重新开始时调用

@Override

protected void onResume() {

super.onResume();

IntentFilter intentFilter = new IntentFilter();

intentFilter.addAction("com.my.force_line");

forceOfflineReceiver = new ForceOfflineReceiver();

registerReceiver(forceOfflineReceiver, intentFilter);

}

// 应用暂停时所调用

@Override

protected void onPause() {

super.onPause();

unregisterReceiver(forceOfflineReceiver);

}

// 创建一个广播接收器

class ForceOfflineReceiver extends BroadcastReceiver {

@Override

public void onReceive(final Context context, final Intent intent) {

// 写一个强制下线的警告框

AlertDialog.Builder builder = new AlertDialog.Builder(context);

builder.setTitle("警告");

builder.setMessage("你以被强制下线,请重新登录");

//使此警告框无法被移除

builder.setCancelable(false);

builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// 销毁所有活动

ActivityCollector.finishAll();

// 重新启动LoginActivity

Intent intent = new Intent(context,LoginActivity.class);

context.startActivity(intent);

}

});

builder.show();

}

}

}

LoginActivity:

public class LoginActivity extends BaseActivity {

private Button btn_login;

EditText et_account, et_password;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_login);

btn_login = findViewById(R.id.login);

et_account = findViewById(R.id.account);

et_password = findViewById(R.id.password);

btn_login.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// 如果帐号等于liang,密码等于12345就登录成功

if (et_account.getText().toString().equals("liang") && et_password.getText().toString().equals("12345")) {

Intent intent = new Intent(LoginActivity.this, MainActivity.class);

startActivity(intent);

}else {

Toast.makeText(LoginActivity.this, "帐号或密码错误", Toast.LENGTH_SHORT).show();

}

}

});

}

}

LoginActivity的xml代码:

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

>

android:id="@+id/account"

android:hint="请输入帐号"

android:inputType="text"

android:layout_width="match_parent"

android:layout_height="wrap_content" />

android:id="@+id/password"

android:hint="请输入密码"

android:inputType="textPassword"

android:layout_width="match_parent"

android:layout_height="wrap_content" />

android:id="@+id/login"

android:text="登录"

android:textSize="20sp"

android:layout_width="match_parent"

android:layout_height="wrap_content" />

LinearLayout>

MainActivity:

public class MainActivity extends BaseActivity {

private Button force_offline;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

force_offline = findViewById(R.id.btn_force_offline);

// 点击按钮发送一个为com.my.force_line广播

force_offline.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// 此处的com.my.force_line是自定义的一个广播

Intent intent = new Intent("com.my.force_line");

// 发送广播,此处发送的是标准广播

sendBroadcast(intent);

}

});

}

}

MainActivity的xml代码:

android:orientation="vertical"

android:layout_width="match_parent"

android:layout_height="match_parent"

>

android:id="@+id/btn_force_offline"

android:text="强制下线"

android:textSize="20sp"

android:layout_width="match_parent"

android:layout_height="wrap_content" />

LinearLayout>

总结:以上内容就是针对qq强制下线(实现一个类似QQ的强制下线功能)详细阐释,如果您觉得有更好的建议可以提供给哪吒游戏网小编,qq强制下线(实现一个类似QQ的强制下线功能)部分内容转载自互联网,有帮助可以收藏一下。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。