如何获取当前运行的app信息 80C

在代码里满足条件的时候跳转第三方apk。
然后在此条件下判断top activity是不是这个apk。
是的就不再跳转。
试了几个方法还是只能打印自己的activity,其他apk信息实在不知道怎么办了。

4个回答

1修改AndroidManifest.xml,添加权限;2检测并引导用户开启权限;3使用UsageStatsManager来获取当前运行的app

参考:http://developer.android.com/reference/android/app/usage/UsageStatsManager.html
在Android5.0,即Lollipop(api level 21)之前,大家都幸福的使用如下代码来获得当前运行的app,即所谓的top Activity:

ActivityManager activityManager = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE);
ComponentName cn = activityManager.getRunningTasks(1).get(0).topActivity;

参考:http://developer.android.com/reference/android/app/usage/UsageStatsManager.html
在Android5.0,即Lollipop(api level 21)之前,大家都幸福的使用如下代码来获得当前运行的app,即所谓的top Activity:

ActivityManager activityManager = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE);
ComponentName cn = activityManager.getRunningTasks(1).get(0).topActivity;

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
请问 Android操作系统 通过什么方法能获得当前运行的APP的SSL证书
一般APP通过pinning certificate的方法来部署 SSL/TLS,也有一部分APP设置为trust all。那么请问,当一个启用了SSL的APP运行时,有什么方法可以实时获得获得该APP的证书,或者是该如何获得在此SSL握手过程中所用到的公钥呢?
android 5.0之后如何获取当前运行的应用包名?
1,先看看android5.0之前的获取方法: // 1、得到当前运行的任务栈,参数就是得到多少个任务栈,1就是只拿一个任务栈 // 对应的也就是正在运行的任务栈啦 ,注意别忘了在清单文件中添加获取的权限 List<ActivityManager.RunningTaskInfo> runTaskInfos = activityManager.getRunningTasks(1); //拿到当前运行的任务栈 ActivityManager.RunningTaskInfo runningTaskInfo = runTaskInfos.get(0); //拿到要运行的Activity的包名 runningpackageName = runningTaskInfo.baseActivity.getPackageName(); 2,但是5.0之后这个方法失效了。搜索到如下解决方法: public static String getCurrentPkgName(Context context) { ActivityManager.RunningAppProcessInfo currentInfo = null; Field field = null; int START_TASK_TO_FRONT = 2; String pkgName = null; try { field = ActivityManager.RunningAppProcessInfo.class.getDeclaredField("processState"); } catch (Exception e) { e.printStackTrace(); } ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningAppProcessInfo> appList = am.getRunningAppProcesses(); for (ActivityManager.RunningAppProcessInfo app : appList) { if (app.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) { Integer state = null; try { state = field.getInt( app ); } catch (Exception e) { e.printStackTrace(); } if (state != null && state == START_TASK_TO_FRONT) { currentInfo = app; break; } } } if (currentInfo != null) { pkgName = currentInfo.processName; } return pkgName; } 3,然而上面的方法是得到却是当前Activity的进程名,一般进程名就是包名,但是如果在Manifest设置Activity的进程名,上面方法就无效了,如: <activity android:name="com.xxx.demo.DemoActivity" android:process=".aaa" /> Log.d(TAG, "当前包名:" + runningpackageName ); 06-05 11:09:44.284 32215-32276/com.xxx.demo D/AppService﹕ 当前包名:.aaa 4,除了上面获取方法,,求android 5.0之后获取当前运行的activity的包名的方法。
Android 如何获得当前正在运行APP 的SSL证书/公钥
我们假设此APP已经配置了SSL/TLS 单向认证,大部分APP采用pinning的方式将server证书编码到本地,也有一部分APP设置为trust all。
android Service获取当前activity的引用,并向activity传字符串
PC端的Server给手机端运行的service发送一个字符串,service还有别的功能,其中有一个是监控手机当前的activity,当文本框(EditText)获取焦点时,将server传来的String填入EditText中。 注:service和Activity不在一个app中 问题1:service中使用activityManager.getRunningTasks(1).get(0).topActivity获取了当前的activity,怎么来引用这个activity 问题2:怎么知道当前activity中哪个EditText获取了焦点 问题3:service接收到的String,怎么放到当前Activity的获取焦点的EditText中
Android Studio无法运行当前项目
本人刚刚接触android开发,还是个白得不能更白的小白,希望大牛们可以帮我一下~ **Android studio无法真机运行,提示是Executing tasks: [:app:assembleDebug**] 目前手机显示已经连在电脑上,Run/debug configuration 上Target 也改成了USB Device。由于目前AS的情况是:版本3.0以上,所以没有Android Device Monitor这项功能了。Android Profiler的情况是: ![图片说明](https://img-ask.csdn.net/upload/201805/01/1525163347_711632.png) 这两天查了很多类似问题的答案,一直都找不到问题关键所在,希望各位大牛可以予以解答....还有由于我是个小白中的小白,希望大牛可以说得具体直白一点,十分感谢!!!要哭了555 谢谢大神们的回复,但是好像出了新的问题。 今天晚上在我没有动的情况下突然就开始运行了,只是我打开的是我的IDonTest项目,点击运行后却运行的是我第一次建的HelloWorld项目!??? 界面是这样的: ![图片说明](https://img-ask.csdn.net/upload/201805/01/1525185368_821943.png) 点击运行,运行得却不是当前项目,这是为什么呢?
编写一个显示当前经纬度的App,textview里面不显示信息?
想在TextView中显示当前经纬度,运行后是空白的(不管是模拟器上还是手机上)代码如下: package com.example.locationtest; import java.util.List; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.app.Activity; import android.content.Context; import android.view.Menu; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { private TextView positionTextView; private LocationManager locationManager; private String provider; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); positionTextView=(TextView)findViewById(R.id.position_text_view); locationManager=(LocationManager)getSystemService(Context.LOCATION_SERVICE); List<String>providerList=locationManager.getProviders(true); if(providerList.contains(LocationManager.GPS_PROVIDER)){ provider=LocationManager.GPS_PROVIDER; }else if(providerList.contains(LocationManager.NETWORK_PROVIDER)){ provider=LocationManager.NETWORK_PROVIDER; }else { Toast.makeText(this, "NO location provider to use",Toast.LENGTH_SHORT).show(); return; } Location location=locationManager.getLastKnownLocation(provider); if(location!=null){ showLocation(location); } locationManager.requestLocationUpdates(provider, 5000, 10, locationListener); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); if(locationManager!=null){ locationManager.removeUpdates(locationListener); } } LocationListener locationListener=new LocationListener() { @Override public void onStatusChanged(String arg0, int arg1, Bundle arg2) { // TODO Auto-generated method stub } @Override public void onProviderEnabled(String arg0) { // TODO Auto-generated method stub } @Override public void onProviderDisabled(String arg0) { // TODO Auto-generated method stub } @Override public void onLocationChanged(Location location) { // TODO Auto-generated method stub showLocation(location); } }; private void showLocation(Location location){ String currentPosition="latitude is "+location.getLatitude()+"\n"+"longitude is "+location.getLongitude(); positionTextView.setText(currentPosition); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } } 配置文件: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.locationtest" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="18" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permission android:name="android.permission.INTERNET"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.locationtest.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> ![图片说明](https://img-ask.csdn.net/upload/201607/31/1469931366_511492.png)
android app退到后台后被杀死进程重启,却留有原来的Activity
android app退到后台后被进程杀死,此时在桌面点击图标会进入第一个Activity,但是回退后,将当前Activity结束掉之后,之前那些Activity还在底部。。。 使用的手机:**小米note3**,其他手机暂时没发现有类似的问题,而且运行的app被频繁杀死,甚至有时退到桌面,打开微信几秒后回来就直接被干掉了 请问:**①app被杀死重启后为何会留有被杀死前打开的Activity,或者说并没有被杀死??**(使用网上所说小米手机的各种解决方法,给app加锁,电量模式里设置等多种方法,不过手机原来这些设置也都是关闭的,故使用给app加锁,测试一次发现并没有原来的Activity残留) ②是否有什么简单办法可以完全恢复app的状态,包括所有Activity,中间有进行网络请求得到数据
getRunningTasks接口在Android L上的使用
最近在做的一个小项目中,需要实时获取Activity栈顶以及它所属的App Process。 根据之前的了解,知道Android API有提供一个接口 public List<ActivityManager.RunningTaskInfo> getRunningTasks (int maxNum) 可以得到系统当前正在运行的Task列表,用maxNum限制要获取的数量(最近使用的最先取出)。 实际运行程序时,发现并不能实时获取当前的Activity栈顶。 (使用的是Android L的机器进行调试) 在5.0以后如何获取
PyQt5计时器QTimer的停止和重启
由于我有一个耗时的子程序,所以我想用QTimer()加上进度条的方法优化用户的等待时间, 但是,当我初始化计时器,并start()后,发现相关的超时槽函数并没有触发,这是为什么了? ```python """创建一个带提示的进度条""" from PyQt5.QtCore import * from PyQt5.QtWidgets import * from PyQt5.QtGui import * import sys import time class MyProgressBar(QWidget): def __init__(self,showMessage = "提示信息",parent = None): super(MyProgressBar, self).__init__(parent) self.message = showMessage self.setWindowTitle("加载数据") self.pbar = QProgressBar() # 构建一个进度条 self.label = QLabel() # 添加到布局 self.layout = QVBoxLayout() self.setLayout(self.layout) self.layout.addWidget(self.label) # 提示信息 self.layout.addWidget(self.pbar) # 进度条 self.label.setText(self.message) self.timer = QTimer(self) # 初始化一个时钟 self.step = 0 # 进度条的值 self.timer.start(50) self.timer.timeout.connect(self.update) self.show() #self.setWindowFlags(Qt.WindowStaysOnTopHint) def setMessage(self,message): """重新设置信息,并重启进度条""" print(self.timer.isActive()) self.message = message self.step = 0 if not self.timer.isActive(): self.timer.start(50) self.show() def callback(self, signal): print("调用回调函数",signal) if signal is False: return if self.timer.isActive(): # 当前正在运行 self.pbar.setValue(100) self.timer.stop() self.step = 0 # 重置 QMessageBox.information( self, "提示", "{},已经完成".format(self.message), QMessageBox.Yes | QMessageBox.No ) #self.setWindowModality(Qt.NonModal) self.hide() def update(self): print("调用的时钟事件") self.pbar.setValue(self.step) # 赋新值 if self.step >= 100: # 停止进度条 self.timer.stop() self.step = 0 # 卡在99%,等后台程序运行完成则到100% elif self.step < 99: self.step += 1 def worker(): time.sleep(5) if __name__ == '__main__': app = QApplication(sys.argv) myui = MyProgressBar(showMessage="第一次") worker() # 模拟耗时程序 myui.callback(True) # time.sleep(1) # myui.setMessage("第二次") # time.sleep(5) # myui.callback(True) sys.exit(app.exec_()) ``` 而且,发现删除耗时程序`worker()`和回调函数后,进度条能一直到99%并卡住?
BLE黑屏后导致APP崩溃
场景1:手机刚刚重启完,运行APP与BLE设备通信,正常无问题(任何情况) 场景2:中断当前BLE操作,退出APP,然后重新与BLE设备通信,一旦把APP切换到后台并黑屏,APP会在几秒内崩溃,logcat没任何错误输出 求大神解答,跪求,以下是捕抓的bug输出(bugly也抓不到),但是重启手机后第一次正常操作,往后就一直会出现描述的问题 04-18 17:58:03.578 2971-3014/? E/BluetoothServiceJni: An exception was thrown by callback 'btgattc_notify_cb'. 04-18 17:58:03.578 2971-3014/? E/BluetoothServiceJni: android.os.DeadObjectException at android.os.BinderProxy.transact(Native Method) at android.bluetooth.IBluetoothGattCallback$Stub$Proxy.onNotify(IBluetoothGattCallback.java:835) at com.android.bluetooth.gatt.GattService.onNotify(GattService.java:724) at dalvik.system.NativeStart.run(Native Method) 04-18 17:58:03.578 2971-3014/? D/BtGatt.btif: btif_gattc_upstreams_evt: Event 10 04-18 17:58:03.578 2971-3014/? E/bt-btif: HAL bt_gatt_callbacks->client->notify_cb 04-18 17:58:03.578 2971-3014/? D/BtGatt.GattService: onNotify() - address=F0:C7:7F:73:68:20, charUuid=0000ffb2-0000-1000-8000-00805f9b34fb, length=19 04-18 17:58:03.578 2971-3014/? E/BluetoothServiceJni: An exception was thrown by callback 'btgattc_notify_cb'. 04-18 17:58:03.578 2971-3014/? E/BluetoothServiceJni: android.os.DeadObjectException at android.os.BinderProxy.transact(Native Method) at android.bluetooth.IBluetoothGattCallback$Stub$Proxy.onNotify(IBluetoothGattCallback.java:835) at com.android.bluetooth.gatt.GattService.onNotify(GattService.java:724) at dalvik.system.NativeStart.run(Native Method) 04-18 17:58:03.578 2971-2982/? D/BtGatt.GattService: Binder is dead - unregistering client (6)! 04-18 17:58:03.578 2971-2982/? D/BtGatt.GattService: stopScan() - queue=0 04-18 17:58:03.578 2971-2982/? D/BtGatt.GattService: stopScan() - queue empty; stopping scan 04-18 17:58:03.578 2971-2982/? D/BtGatt.btif: btif_gattc_scan 04-18 17:58:03.578 2971-2982/? D/BtGatt.GattService: unregisterClient() - clientIf=6 04-18 17:58:03.578 2971-2982/? D/BtGatt.btif: btif_gattc_unregister_app 04-18 17:58:03.578 2971-3014/? D/BtGatt.btif: btgattc_handle_event: Event 1003 04-18 17:58:03.578 2971-3014/? D/BtGatt.btif: btgattc_handle_event: Event 1001 04-18 17:58:03.578 2971-3088/? W/bt-l2cap: L2CA_RemoveFixedChnl() CID: 0x0004 BDA: f0c77f736820 not connected 04-18 17:58:03.578 1156-1539/? D/KeyguardViewMediator: setHidden false 04-18 17:58:03.578 1156-1539/? D/KeyguardUpdateMonitor: sendKeyguardVisibilityChanged(true) 04-18 17:58:03.578 1156-1156/? D/KeyguardUpdateMonitor: handleKeyguardVisibilityChanged(1) 04-18 17:58:03.578 2971-3014/? D/BtGatt.btif: btif_gattc_upstreams_evt: Event 5 04-18 17:58:03.578 2971-3014/? E/bt-btif: HAL bt_gatt_callbacks->client->close_cb 04-18 17:58:03.578 2971-3014/? D/BtGatt.GattService: onDisconnected() - clientIf=6, connId=6, address=F0:C7:7F:73:68:20 04-18 17:58:03.578 2971-3014/? E/BtGatt.ContextMap: Context not found for ID 6
自学Android开发 在模拟器运行闪退
初学者自写的程序 ,但是在模拟器下运行闪退!!该怎么改呀?? package com.example.work3; import java.util.ArrayList; import java.util.List; import android.support.v7.app.ActionBarActivity; import android.support.v7.app.ActionBar; import android.support.v4.app.Fragment; import android.annotation.SuppressLint; import android.app.AlertDialog; import android.app.TabActivity; import android.content.DialogInterface; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.StrictMode; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; import android.widget.Spinner; import android.widget.TabHost; import android.widget.TextView; import android.os.Build; public class MainActivity extends TabActivity { private TabHost tabhost; private ListView listview; private ArrayAdapter<String> arr_adapter; private Spinner spinner; private List<String>list; private ArrayAdapter<String> adapter; private EditText et1,et2; private Button bt; String name; String value; String style; @SuppressLint("NewApi") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); et1=(EditText) findViewById(R.id.editText1); et2=(EditText) findViewById(R.id.editText2); bt=(Button) findViewById(R.id.button1); setContentView(R.layout.activity_main); tabhost=getTabHost(); tabhost.addTab(tabhost.newTabSpec("菜单一").setIndicator("首页").setContent(R.id.tab1)); tabhost.addTab(tabhost.newTabSpec("菜单二").setIndicator("新增").setContent(R.id.tab2)); tabhost.addTab(tabhost.newTabSpec("菜单三").setIndicator("账单").setContent(R.id.tab3)); //按钮监听 提取信息 bt.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub name = et1.getText().toString(); value = et2.getText().toString(); style = spinner.getSelectedItem().toString(); } }); listview = (ListView) findViewById(R.id.listview); //新建适配器 String[]arr_data={"数据1","数据2","数据3","数据4","数据5"}; //ArrayAdapter(上下文,当前ListView加载的每一个列表项所对应的布局文件,数据源) arr_adapter =new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,arr_data); listview.setAdapter(arr_adapter); spinner=(Spinner) findViewById(R.id.spinner); //数据源 String[]list = {"1.日常食品支出","2.人情世故支出","3.出差旅游支出","4.服饰鞋帽支出","5.生活用品支出","6.其他支出"}; //新建适配器 adapter=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list); //设置下拉样式 adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //加载适配器 spinner.setAdapter(adapter); } //退出对话框 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK ) { // 创建退出对话框 AlertDialog isExit = new AlertDialog.Builder(this).create(); // 设置对话框标题 isExit.setTitle("系统提示"); // 设置对话框消息 isExit.setMessage("确定要退出吗"); // 添加选择按钮并注册监听 isExit.setButton("确定", listener); isExit.setButton2("取消", listener); // 显示对话框 isExit.show(); } return false; } /**监听对话框里面的button点击事件*/ DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { switch (which) { case AlertDialog.BUTTON_POSITIVE:// "确认"按钮退出程序 finish(); break; case AlertDialog.BUTTON_NEGATIVE:// "取消"第二个按钮取消对话框 break; default: break; } } }; }
高手请进,java如何控制web应用启动关闭
要实现一个timer,定期检查机器有无授权,如果授权到期,停止当前web-app, 使用Runtime运行shutup.bat的方式是不行的,因为tomcat下不一定只有我这一个app, 不应该全给停掉,请赐教。。。。
android 引用aar 项目编译通过,但是运行跳转到aar里的Activity时就crash。
报的错: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.jintf.testdemo/com.congtai.third2zebrasetsdk.activity.MainWebViewActivity}: java.lang.ClassNotFoundException: Didn't find class "com.congtai.third2zebrasetsdk.activity.MainWebViewActivity" on path: DexPathList[[zip file "/data/app/com.jintf.testdemo-1/base.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_dependencies_apk.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_slice_0_apk.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_slice_1_apk.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_slice_2_apk.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_slice_3_apk.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_slice_4_apk.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_slice_5_apk.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_slice_6_apk.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_slice_7_apk.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_slice_8_apk.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.jintf.testdemo-1/lib/arm64, /system/lib64, /vendor/lib64, /system/vendor/lib64, /product/lib64]] Caused by: java.lang.ClassNotFoundException: Didn't find class "com.congtai.third2zebrasetsdk.activity.MainWebViewActivity" on path: DexPathList[[zip file "/data/app/com.jintf.testdemo-1/base.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_dependencies_apk.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_slice_0_apk.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_slice_1_apk.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_slice_2_apk.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_slice_3_apk.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_slice_4_apk.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_slice_5_apk.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_slice_6_apk.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_slice_7_apk.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_slice_8_apk.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.jintf.testdemo-1/lib/arm64, /system/lib64, /vendor/lib64, /system/vendor/lib64, /product/lib64]] Suppressed: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/congtai/third2zebrasetsdk/activity/BaseActivity; at java.lang.VMClassLoader.findLoadedClass(Native Method) at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:742) at java.lang.ClassLoader.loadClass(ClassLoader.java:362) ... 12 more Caused by: java.lang.ClassNotFoundException: com.congtai.third2zebrasetsdk.activity.BaseActivity at java.lang.VMClassLoader.findLoadedClass(Native Method) at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:742) at java.lang.ClassLoader.loadClass(ClassLoader.java:362) 07-28 14:32:45.991 21579-21579/com.jintf.testdemo E/AndroidRuntime: at java.lang.ClassLoader.loadClass(ClassLoader.java:312) ... 15 more Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/congtai/third2zebrasetsdk/activity/BaseRxActivity; ... 15 more Caused by: java.lang.ClassNotFoundException: com.congtai.third2zebrasetsdk.activity.BaseRxActivity at java.lang.VMClassLoader.findLoadedClass(Native Method) at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:742) at java.lang.ClassLoader.loadClass(ClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) ... 15 more Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/congtai/third2zebrasetsdk/activity/RxActivity; ... 15 more Caused by: java.lang.ClassNotFoundException: com.congtai.third2zebrasetsdk.activity.RxActivity at java.lang.VMClassLoader.findLoadedClass(Native Method) at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:742) at java.lang.ClassLoader.loadClass(ClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) ... 15 more Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/trello/rxlifecycle/ActivityLifecycleProvider; ... 15 more Caused by: java.lang.ClassNotFoundException: Didn't find class "com.trello.rxlifecycle.ActivityLifecycleProvider" on path: DexPathList[[zip file "/data/app/com.jintf.testdemo-1/base.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_dependencies_apk.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_slice_0_apk.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_slice_1_apk.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_slice_2_apk.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_slice_3_apk.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_slice_4_apk.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_slice_5_apk.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_slice_6_apk.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_slice_7_apk.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_slice_8_apk.apk", zip file "/data/app/com.jintf.testdemo-1/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.jintf.testdemo-1/lib/arm64, /system/lib64, /vendor/lib64, /system/vendor/lib64, /product/lib64]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:380) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) 首先,这个aar是做好的一个项目生成的aar,生成、导入都没问题,编译通过,然后在当前项目中也能检索到aar里面的activity等资源,然后我想跳转到aar里的Activity 即MainWebViewActivity里面,如下: Intent intent = new Intent(android.content.Intent.ACTION_VIEW); // 这里的packetname 一定记住填写 调用方的packetname 因为 aar最终会被合并到调用方的manifest文件 intent.setComponent(new ComponentName(appName, "com.congtai.third2zebrasetsdk.activity.MainWebViewActivity")); // intent.setClassName(appName,//packagename // "com.congtai.third2zebrasetsdk.activity.MainWebViewActivity");//classname// intent.putExtra("url",DRIVESET_URL+"?channel="+channel+"&brand="+brand+"&appName="+appName); startActivity(intent); 网上说的几种方式都试过,在mainfast文件里也注册了这个activity,还是会crash,报的Unable toinstantiate activity componentInfo,我真搞不懂了,急求大神指导~~~
Android电视做后台模拟遥控器,如何在不root的情况下将system权限的apk安装
当前用 ``` Instrumentation inst = new Instrumentation(); inst.sendKeyDownUpSync(KeyCode); ``` 无法实现模拟按键,如果想实现需要把app提升到系统权限,但是除非root或者用系统签名编译否则无法实现。 有大神帮忙想想有办法在未root的几个不同电视rom中实现后台模拟按键的功能 目前有一种实现方法是将有系统权限的apk放置在asserts文件夹内,当普通权限的宿主apk安装运行时自动将asserts文件夹内的apk安装到系统内,只是不知道是用什么办法安装进去的,因为我用普通安装方法都会安装失败,而别人的确可以,已测试小米手机、酷开电视、长虹电视均可以
从python入门到实践19.2.2运行后登录界面没有出现注册页面,出现下面的错误
``` """learning_log URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/2.2/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: path('', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin from django.urls import path,include urlpatterns = [ #url(r'^admin/',include(admin.site.urls)) path('admin/', admin.site.urls), #url(r'', include('learning_logs.urls', namespace='learning_logs')), path('', include('learning_logs.urls', namespace='learning_logs')), #创建用户账户 path('users/',include('users.urls',namespace='users')), ] ``` base.html ``` <p> <a href = "{% url 'learning_logs:index'%}">Learning Log</a> - <a href = "{% url 'learning_logs:topics'%}">Topics</a> - {% if user.is_authenticated %} Hello,{{user.username}}. <a href="{% url 'users:logout' %}">log out</a> {% else %} <a href="{% url 'users:register' %}">register</a> - <a href="{% url 'users:login' %}">log in</a> {% endif %} </p> {% block content %}{% endblock content %} ``` users目录下的urls.py ``` #为应用程序users定义URL模式 from django.urls import path,include,re_path from django.contrib.auth.views import LoginView #句点让python从当前的urls.py模块所在的文件夹中导入视图 from . import views # #将login改为LoginView, #将path('login/', login, {'template_name': 'users/login.html'}, name = 'login') #改为path('login/', LoginView.as_view(template_name= users/login.htm),name='login') app_name='users' urlpatterns = [ #主页 path('login/', LoginView.as_view(template_name= 'users/login.html'),name='login'), #注销 path('logout/',views.logout_view,name='logout'), #注册页面 path('register/',views.register,name='register'), ] ``` views.py ``` # -*- coding: utf-8 -*- from __future__ import unicode_literals from django.shortcuts import render # Create your views here. from django.http import HttpResponseRedirect from django.urls import reverse from django.contrib.auth import logout,login,authenticate from django.contrib.auth.forms import UserCreationForm def logout_view(request): '''注销用户''' logout(request) return HttpResponseRedirect(reverse('learning_logs:index')) def register(request): '''注册新用户''' if request.method!='POST': #显示空的注册表单 form =UserCreationForm() else: #处理填写好的表单 form=UserCreationForm(data=request.POST) if form.is_valid(): new_user=form.save() #让用户自动登录,再重定向到主页 authenticated_user=authenticate(username=new_user.username,password=request.POST['password1']) login(request,authenticated_user) return HttpResponseRedirect(reverse('learning_logs:index')) context = {'form':form} return render(request,'users/register.html',context) ``` register.html ``` {% extends "learning_logs/base.html" %} {% block content %} <form method ='post' action= "{% url 'users:register' %}"> {% csrf_token %} {{form.as_p }} <button name="submit">register</button> <input type='hidden' name='next' value="{% url 'learning_logs:index' %}"/> </form> {% endblock content %} ``` [24/Oct/2019 11:31:17] "POST /admin/login/?next=/admin/ HTTP/1.1" 200 1982 ---------------------------------------- Exception happened during processing of request from ('127.0.0.1', 51588) Traceback (most recent call last): File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\socket server.py", line 647, in process_request_thread self.finish_request(request, client_address) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\socket server.py", line 357, in finish_request self.RequestHandlerClass(request, client_address, self) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\socket server.py", line 717, in __init__ self.handle() File "D:\py3.6.4\python_work\lesson_18\learning_log\ll_env\lib\site-packages\d jango\core\servers\basehttp.py", line 171, in handle self.handle_one_request() File "D:\py3.6.4\python_work\lesson_18\learning_log\ll_env\lib\site-packages\d jango\core\servers\basehttp.py", line 179, in handle_one_request self.raw_requestline = self.rfile.readline(65537) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\socket .py", line 589, in readinto return self._sock.recv_into(b) ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。 ----------------------------------------
android studio运行报下列错误
1.貌似有问题的代码 package com.example.coolweather; import android.app.Fragment; import android.app.ProgressDialog; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import com.example.coolweather.db.City; import com.example.coolweather.db.County; import com.example.coolweather.db.Province; import com.example.coolweather.util.HttpUtil; import com.example.coolweather.util.Utility; import org.litepal.crud.DataSupport; import java.io.IOException; import java.util.ArrayList; import java.util.List; import okhttp3.Call; import okhttp3.Callback; import okhttp3.Response; /** * Created by Airth on 2019/5/10. */ public class ChooseAreaFragment extends Fragment { public static final int LEVEL_PROVINCE=0; public static final int LEVEL_CITY=1; public static final int LEVEL_COUNTY=2; private ProgressDialog progressDialog; private TextView titleText; private Button backButton; private ListView listView; private ArrayAdapter<String> adapter; private List<String> dataList = new ArrayList<>(); private int currentLevel; //当前被选中的级别 private Province selectedProvince;//被选中的省份 private City selectedCity;//被选中的城市 private List<Province> provinceList;//省列表 private List<City> cityList;//市列表 private List<County> countyList ;//县列表 /*获取控件实例id*/ @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { Log.d("ChooseAreaFragment","onCreateView"); View view = inflater.inflate(R.layout.choose_area,container,false); titleText = (TextView)view.findViewById(R.id.title_text); //获取标题栏文本id backButton = (Button) view.findViewById(R.id.back_button); //获取标题栏id listView = (ListView)view.findViewById(R.id.list_view); //获取Item列表id //获取ArrayAdapter对象 adapter =new ArrayAdapter<>(getContext(), android.R.layout.simple_list_item_1, dataList); listView.setAdapter(adapter);//设置并初始化适配器 return view;//将视图返回 } /*点击事件集合*/ @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { Log.d("ChooseAreaFragment","onActivityCreated"); super.onActivityCreated(savedInstanceState); //列表任意一栏被点击,则... listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Log.d("ChooseAreaFragment","列表被点了的..."); if (currentLevel == LEVEL_PROVINCE){ //当前选中的级别为省份时 selectedProvince = provinceList.get(position); //当前点击为选中状态 queryCities();//查询市的方法 } else if (currentLevel == LEVEL_CITY){ selectedCity = cityList.get(position); queryCounties(); } } }); backButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (currentLevel == LEVEL_COUNTY){ queryCities(); } else if (currentLevel == LEVEL_CITY){ queryProvinces(); } } }); queryProvinces(); } private void queryCities() { titleText.setText(selectedProvince.getProvinceName()); //设置市的标题内容 backButton.setVisibility(View.VISIBLE); //设置返回按钮可见 //查询被选中的省份城市的市区 cityList = DataSupport.where("provinceid=?",String.valueOf(selectedProvince. getId())).find(City.class); Log.d("ChooseAreaFragment","市级"); if (cityList.size()>0){ //如果省列表不为空,则... dataList.clear(); for (City city:cityList){ //遍历每一份省的市级城市 dataList.add(city.getCityName()); //添加到数据列表中 } adapter.notifyDataSetChanged();//通知适配器数据更新了 listView.setSelection(0); currentLevel = LEVEL_CITY; } else{ int provinceCode = selectedProvince.getProvinceCode(); //获取被选取省级代码 String address = "http://guolin.tech/api/china/"+provinceCode;//获取被选取地区的网络地址 Log.d("ChooseAreaFragment","准备在网络中获取地址信息"); queryFromServer(address,"city"); // 在网络中查询 } } /*根据传入的地址和类型从服务器查询省市县数据*/ private void queryFromServer(String adress, final String type) { showProgressDialog(); // 发送一条网络请求 HttpUtil.sendOKHttpRequest(adress, new Callback() { //请求加载失败 @Override public void onFailure(Call call, IOException e) { //通过runOnUiThread方法回到主线程逻辑 getActivity().runOnUiThread(new Runnable() { @Override public void run() { closeProgressDialog(); Toast.makeText(getContext(),"加载失败",Toast.LENGTH_SHORT).show(); } }); } @Override public void onResponse(Call call, Response response) throws IOException { Log.d("ChooseAreaFragment","加载地区信息..."); String responseText = response.body().string(); boolean result = false; if ("province".equals(type)){ result = Utility.handleProvinceResponse(responseText); } else if ("city".equals(type)){ result = Utility.handleCityResponse(responseText,selectedProvince.getId()); } else if ("county".equals(type)){ result = Utility.handleCountyResponse(responseText, selectedCity.getId()); } if (result) { getActivity().runOnUiThread(new Runnable() { @Override public void run() { Log.d("ChooseAreaFragment","开启线程更新UI"); closeProgressDialog(); if ("province".equals(type)){ queryProvinces(); } else if ("city".equals(type)){ queryCities(); } else if ("county".equals(type)){ queryCounties(); } } }); } if ("city".equals(type)){ result = Utility.handleProvinceResponse(responseText); } if ("county".equals(type)){ result = Utility.handleProvinceResponse(responseText); } } }); } /*显示进度对话框*/ private void showProgressDialog() { if (progressDialog==null){ progressDialog = new ProgressDialog(getActivity()); progressDialog.setMessage("正在加载..."); progressDialog.setCanceledOnTouchOutside(false); } progressDialog.show(); } private void queryCounties() { titleText.setText(selectedCity.getCityName()); backButton.setVisibility(View.VISIBLE); countyList = DataSupport.where("cityid = ?", String.valueOf(selectedCity.getId())).find(County.class); if (countyList.size()>0){ dataList.clear(); for (County county:countyList){ dataList.add(county.getCountyName()); } adapter.notifyDataSetChanged(); listView.setSelection(0); currentLevel=LEVEL_COUNTY; } else { int provinceCode = selectedProvince.getProvinceCode(); int cityCode = selectedCity.getCityCode(); String address = "http://guolin.tech/api/china/"+provinceCode+"/"+cityCode; queryFromServer(address,"county"); } } /*全国所有的省,优先查询数据库,如果没有再去服务器查询*/ private void queryProvinces() { titleText.setText("中国"); Log.d("ChooseAreaFragment","查询省中..."); backButton.setVisibility(View.GONE); provinceList = DataSupport.findAll(Province.class); if (provinceList.size()>0){ dataList.clear(); for (Province province:provinceList){ dataList.add(province.getProvinceName()); } adapter.notifyDataSetChanged(); listView.setSelection(0); currentLevel = LEVEL_PROVINCE; } else { Log.d("ChooseAreaFragment","服务器查询省中..."); String address = "http://guolin.tech/api/china"; queryFromServer(address,"province"); } } private void closeProgressDialog() { if (progressDialog!=null){ progressDialog.dismiss(); } } } 2.这是报错日志 ![图片说明](https://img-ask.csdn.net/upload/201905/10/1557481080_879893.png)
运行报FATAL EXCEPTION: main。
编写郭霖第一行代码和风天气 1.错误日志信息 ![图片说明](https://img-ask.csdn.net/upload/201905/11/1557552409_155464.png) 2.碎片布局后台代码 package com.example.coolweather; import android.app.Fragment; import android.app.ProgressDialog; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import com.example.coolweather.db.City; import com.example.coolweather.db.County; import com.example.coolweather.db.Province; import com.example.coolweather.util.HttpUtil; import com.example.coolweather.util.Utility; import org.litepal.crud.DataSupport; import java.io.IOException; import java.util.ArrayList; import java.util.List; import okhttp3.Call; import okhttp3.Callback; import okhttp3.Response; /** * Created by Airth on 2019/5/10. */ public class ChooseAreaFragment extends Fragment { public static final int LEVEL_PROVINCE=0; public static final int LEVEL_CITY=1; public static final int LEVEL_COUNTY=2; private ProgressDialog progressDialog; private TextView titleText; private Button backButton; private ListView listView; private ArrayAdapter<String> adapter; private List<String> dataList = new ArrayList<>(); private int currentLevel; //当前被选中的级别 private Province selectedProvince;//被选中的省份 private City selectedCity;//被选中的城市 private List<Province> provinceList;//省列表 private List<City> cityList;//市列表 private List<County> countyList ;//县列表 /*获取控件实例id*/ @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { Log.d("ChooseAreaFragment","onCreateView"); View view = inflater.inflate(R.layout.choose_area,container,false); titleText = (TextView)view.findViewById(R.id.title_text); //获取标题栏文本id backButton = (Button) view.findViewById(R.id.back_button); //获取标题栏id listView = (ListView)view.findViewById(R.id.list_view); //获取Item列表id //获取ArrayAdapter对象 adapter =new ArrayAdapter<>(getContext(), android.R.layout.simple_list_item_1, dataList); listView.setAdapter(adapter);//设置并初始化适配器 return view;//将视图返回 } /*点击事件集合*/ @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { Log.d("ChooseAreaFragment","onActivityCreated"); super.onActivityCreated(savedInstanceState); //列表任意一栏被点击,则... listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Log.d("ChooseAreaFragment","列表被点了的..."); if (currentLevel == LEVEL_PROVINCE){ //当前选中的级别为省份时 selectedProvince = provinceList.get(position); //当前点击为选中状态 queryCities();//查询市的方法 } else if (currentLevel == LEVEL_CITY){ selectedCity = cityList.get(position); queryCounties(); } } }); backButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (currentLevel == LEVEL_COUNTY){ queryCities(); } else if (currentLevel == LEVEL_CITY){ queryProvinces(); } } }); queryProvinces(); } private void queryCities() { titleText.setText(selectedProvince.getProvinceName()); //设置市的标题内容 backButton.setVisibility(View.VISIBLE); //设置返回按钮可见 //查询被选中的省份城市的市区 cityList = DataSupport.where("provinceid=?",String.valueOf(selectedProvince. getId())).find(City.class); Log.d("ChooseAreaFragment","市级"); if (cityList.size()>0){ //如果省列表不为空,则... dataList.clear(); for (City city:cityList){ //遍历每一份省的市级城市 dataList.add(city.getCityName()); //添加到数据列表中 } adapter.notifyDataSetChanged();//通知适配器数据更新了 listView.setSelection(0); currentLevel = LEVEL_CITY; } else{ int provinceCode = selectedProvince.getProvinceCode(); //获取被选取省级代码 String address = "http://guolin.tech/api/china/"+provinceCode;//获取被选取地区的网络地址 Log.d("ChooseAreaFragment","准备在网络中获取地址信息"); queryFromServer(address,"city"); // 在网络中查询 } } /*根据传入的地址和类型从服务器查询省市县数据*/ private void queryFromServer(String adress, final String type) { showProgressDialog(); // 发送一条网络请求 HttpUtil.sendOKHttpRequest(adress, new Callback() { //请求加载失败 @Override public void onFailure(Call call, IOException e) { //通过runOnUiThread方法回到主线程逻辑 getActivity().runOnUiThread(new Runnable() { @Override public void run() { closeProgressDialog(); Toast.makeText(getContext(),"加载失败",Toast.LENGTH_SHORT).show(); } }); } @Override public void onResponse(Call call, Response response) throws IOException { Log.d("ChooseAreaFragment","加载地区信息..."); String responseText = response.body().string(); boolean result = false; if ("province".equals(type)){ result = Utility.handleProvinceResponse(responseText); } else if ("city".equals(type)){ result = Utility.handleCityResponse(responseText,selectedProvince.getId()); } else if ("county".equals(type)){ result = Utility.handleCountyResponse(responseText, selectedCity.getId()); } if (result) { getActivity().runOnUiThread(new Runnable() { @Override public void run() { Log.d("ChooseAreaFragment","开启线程更新UI"); closeProgressDialog(); if ("province".equals(type)){ queryProvinces(); } else if ("city".equals(type)){ queryCities(); } else if ("county".equals(type)){ queryCounties(); } } }); } if ("city".equals(type)){ result = Utility.handleProvinceResponse(responseText); } if ("county".equals(type)){ result = Utility.handleProvinceResponse(responseText); } } }); } /*显示进度对话框*/ private void showProgressDialog() { if (progressDialog==null){ progressDialog = new ProgressDialog(getActivity()); progressDialog.setMessage("正在加载..."); progressDialog.setCanceledOnTouchOutside(false); } progressDialog.show(); } private void queryCounties() { titleText.setText(selectedCity.getCityName()); backButton.setVisibility(View.VISIBLE); countyList = DataSupport.where("cityid = ?", String.valueOf(selectedCity.getId())).find(County.class); if (countyList.size()>0){ dataList.clear(); for (County county:countyList){ dataList.add(county.getCountyName()); } adapter.notifyDataSetChanged(); listView.setSelection(0); currentLevel=LEVEL_COUNTY; } else { int provinceCode = selectedProvince.getProvinceCode(); int cityCode = selectedCity.getCityCode(); String address = "http://guolin.tech/api/china/"+provinceCode+"/"+cityCode; queryFromServer(address,"county"); } } /*全国所有的省,优先查询数据库,如果没有再去服务器查询*/ private void queryProvinces() { titleText.setText("中国"); Log.d("ChooseAreaFragment","查询省中..."); backButton.setVisibility(View.GONE); provinceList = DataSupport.findAll(Province.class); if (provinceList.size()>0){ dataList.clear(); for (Province province:provinceList){ dataList.add(province.getProvinceName()); } adapter.notifyDataSetChanged(); listView.setSelection(0); currentLevel = LEVEL_PROVINCE; } else { Log.d("ChooseAreaFragment","服务器查询省中..."); String address = "http://guolin.tech/api/china"; queryFromServer(address,"province"); } } private void closeProgressDialog() { if (progressDialog!=null){ progressDialog.dismiss(); } } }
Android滑动菜单中的TextView中的文字再次滑动就不见了
做的是郭林大神的coolweather,我修改了一下,在下面ListView上添加了一个TextView。这是第一次运行APP的时候,默认出现滑动菜单。 ![图片说明](https://img-ask.csdn.net/upload/201704/24/1493042842_62793.png) 通过百度定位获得了当前位置并显示,点击TextVIew也能正常显示当前位置的天气。但是当再次划出菜单时,TextView显示却为空,这是为什么?关闭重新打开APP时,默认进度天气界面,这时候再切出滑动菜单,也显示为空,不知道什么原因,请大神赐教! ![图片说明](https://img-ask.csdn.net/upload/201704/24/1493042872_229763.png)
Android Studio获取GMT+8时间出错?
``` package com.example.thread; import java.util.Timer; import android.app.Activity; import android.graphics.Color; import android.graphics.Typeface; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.text.format.Time; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.text.format.DateFormat; //import java.util.Timer; import android.text.format.Time; import android.widget.TextView; public class MainActivity extends Activity { public TextView time_text; public String text2="9"; public int year,month,date,hour,minute,second; public Handler mHandler=new Handler(); Time t=new Time("GMT+8"); // or Time t=new Time("GMT+8"); 加上Time Zone资料。 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); time_text=(TextView)findViewById(R.id.time_text); time_text.setTextColor(Color.WHITE); //Time t=new Time("GMT+8"); // or Time t=new Time("GMT+8"); 加上Time Zone资料。 mHandler.post(new Runnable() { @Override public void run() { // TODO Auto-generated method stub t.setToNow(); // 取得系统时间。 year = t.year;//年 month = t.month;//月 date = t.monthDay;//日 hour = t.hour; //小时 minute = t.minute;//分钟 second = t.second;//秒 //输出当前时间 时分秒 time_text.setText(String.valueOf(" " + hour + ":" + minute + ":" + second)); mHandler.postDelayed(this, 1000); } }); } } ``` ![图片说明](https://img-ask.csdn.net/upload/201508/19/1439943537_890067.jpg) 我想要显示东八区时间,可是app却显示中时区时间,怎么回事? 我是在android4.1.2版本手机上运行app的。我的手机系统自带的时间显示是东八区时间,app显示却不一样。
相见恨晚的超实用网站
搞学习 知乎:www.zhihu.com 简答题:http://www.jiandati.com/ 网易公开课:https://open.163.com/ted/ 网易云课堂:https://study.163.com/ 中国大学MOOC:www.icourse163.org 网易云课堂:study.163.com 哔哩哔哩弹幕网:www.bilibili.com 我要自学网:www.51zxw
花了20分钟,给女朋友们写了一个web版群聊程序
参考博客 [1]https://www.byteslounge.com/tutorials/java-ee-html5-websocket-example
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
引言 本文主要是记录一下面试字节跳动的经历。 三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
这30个CSS选择器,你必须熟记(上)
关注前端达人,与你共同进步CSS的魅力就是让我们前端工程师像设计师一样进行网页的设计,我们能轻而易举的改变颜色、布局、制作出漂亮的影音效果等等,我们只需要改几行代码,不需...
国产开源API网关项目进入Apache孵化器:APISIX
点击蓝色“程序猿DD”关注我回复“资源”获取独家整理的学习资料!近日,又有一个开源项目加入了这个Java开源界大名鼎鼎的Apache基金会,开始进行孵化器。项目名称:AP...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
编写Spring MVC控制器的14个技巧
本期目录 1.使用@Controller构造型 2.实现控制器接口 3.扩展AbstractController类 4.为处理程序方法指定URL映射 5.为处理程序方法指定HTTP请求方法 6.将请求参数映射到处理程序方法 7.返回模型和视图 8.将对象放入模型 9.处理程序方法中的重定向 10.处理表格提交和表格验证 11.处理文件上传 12.在控制器中自动装配业务类 ...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
求小姐姐抠图竟遭白眼?痛定思痛,我决定用 Python 自力更生!
点击蓝色“Python空间”关注我丫加个“星标”,每天一起快乐的学习大家好,我是 Rocky0429,一个刚恰完午饭,正在用刷网页浪费生命的蒟蒻...一堆堆无聊八卦信息的网页内容慢慢使我的双眼模糊,一个哈欠打出了三斤老泪,就在此时我看到了一张图片:是谁!是谁把我女朋友的照片放出来的!awsl!太好看了叭...等等,那个背景上的一堆鬼画符是什么鬼?!真是看不下去!叔叔婶婶能忍,隔壁老王的三姨妈的四表...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
相关热词 c# clr dll c# 如何orm c# 固定大小的字符数组 c#框架设计 c# 删除数据库 c# 中文文字 图片转 c# 成员属性 接口 c#如何将程序封装 16进制负数转换 c# c#练手项目
立即提问